• urlがhttp://hogehoge.com/a-page/b-page/c-pageで
    a-pageが親ページ
    b-pageが子ページ
    c-pageが孫ページとした場合、
    c-page上で、子ページだけのスラッグ(b-pageというスラッグ)を取得するにはどうすればできますか?

    <?php $parent_slug = get_page_uri($post->post_parent); ?>
    <?php echo $parent_slug; ?>
    だとa-page/b-pageというスラッグが吐き出され、どうしてもここから先が進みません。
    ご存知の方は是非ともご教授いただけないでしょうか?

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • $parent_post = get_post( $post->post_parent );
    $parent_slug = $parent_post->post_name;

    でどうでしょう。

    トピック投稿者 sugikenji

    (@sugikenji)

    できました。本当にありがとうございます。これを参考に以下の場合を考えてみたのですが上手くいきません。厚かましい質問で大変恐縮ですが、この場合はどうすればできるのでしょうか?

    urlがhttp://hogehoge.com/a-page/b-page/c-page/d-pageで
    a-pageが親ページ
    b-pageが子ページ
    c-pageが孫ページ
    d-pageがひ孫ページとした場合、
    d-page上で、子ページだけのスラッグ(b-pageというスラッグ)を取得するにはどうすればできますか?

    b-page の ID を取得して、その ID で get_post を行い、post_nameを参照すれば大丈夫です。

    b-pageのIDですが、d-pageの post_parent で get_post を行い、c-page を取得すると、c-page の post_parent が b-pageのIDとなります。

    もしくは、$post->ancestors に、先祖のページのIDが階層の深い順に入っていますので、最後から2番目の数値が b-page の ID となります。

    トピック投稿者 sugikenji

    (@sugikenji)

    jim912さん。できました。本当にありがとうございます。
    お陰さまで完璧に理解できました。
    長い時間、根気よくお付き合い頂き本当にありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)

トピック「スラッグの取得方法」には新たに返信することはできません。