web-dev-qa-db-ja.com

子ページのトップレベルの親に対するパーマリンクを取得する

私はこのページ構造を持っています:

  • トップページ

    • サブページ1
      • SUB SUB PAGE 1
    • サブページ2

    [等]

トップページに戻るためのリンクを各サブページに表示することは可能ですか?そしてどうやって?

3
Pepozzo

トップページのURLを取得する方法は次のとおりです。

$top_page_url = get_permalink( array_slice( get_ancestors( get_the_ID(), 'page' ) , -1 ) );

get_ancestors()は与えられたページの全ての親(ID)を含む配列を返します。あなたはそれについてもっとCodex here で読むことができます。

He​​re は最後の配列項目を取得するためのさまざまな方法ですが、end()は入力として関数を期待しないことに注意してください - それについての詳細はPHP docs here

5
birgire

$post->post_parentで親ページの投稿IDを取得できます。その時点で、それはパーマリンクを得るためにそのIDを使うことの問題です。

Wp.​​orgフォーラムからのこの断片は、あなたが必要とすることをするでしょう:

<?php if($post->post_parent) {
    $parent_link = get_permalink($post->post_parent); ?>
    <a href="<?php echo $parent_link; ?>">Link to parent page</a>
<?php } ?>

コードスニペット ここにあります

0
sabreuse