0

私はワードプレスですべての親ページのリストを作成しようとしていました。より具体的には、パンくずリストとして使用する祖先ページのリスト。

親、親などをトップレベルまで取得したい。

たとえば、このページ構造の場合:

  • ページ
    • サブページ
      • サブサブページ
        • サブサブページ

サブサブサブページから呼び出されると、

  • ページ
  • サブページ
  • サブサブページ

サブサブページから呼び出されると、

  • ページ
  • サブページ
4

1 に答える 1

0

get_post_ancestors()は、すべての祖先のページIDを配列として返します。

wp_list_pages()は、ページIDのコンマ区切りリストを受け入れます

implode()関数は、配列を文字列(この場合はコンマ)で結合します。

get_post_ancestorsの結果をコンマで内破することにより、wp_list_pages()に渡す祖先のページIDのコンマ区切りリストを効果的に作成します。

wp_list_pages()のデフォルトの使用法では、ネストされたリストが作成されます。深さオプションを-1に設定すると、すべてのアイテムがフラットリストに配置されます。

最後の重要なビットであるifステートメントは、親ページを一覧表示する前に、投稿に実際に親があることを確認します。親がなく、get_post_ancestors()が呼び出された場合、何らかの理由でWPサイトのすべてのページが返されます。

すべてを一緒に入れて、

<ul>
    <?php 
        $ancestorsCSV =  implode( ',' , get_post_ancestors( $post));

        if ($post->post_parent){
            wp_list_pages('include='.$ancestorsCSV.'&title_li=&depth=-1' ); 
        }
    ?>
</ul>

私は驚くべきことにグーグル検索でそのような解決策を見つけることができませんでした。

于 2012-10-23T03:23:23.227 に答える