制作の流れワードプレス安心サポート事例ブログお問い合わせ+事業者概要プライバシーポリシーSearch技術情報ホームブログ技術情報wp_list_pagesで関連する固定ページのみを表示wp_list_pagesで関連する固定ページのみを表示2017.09.18大量のページのあるサイト大きな企業や公共期間等のホームページは、サイトのページ数が数百とかざらにあったりします。ページの階層は4、5段は当たり前、自由にどこまでもいけるので、ちゃんと決めておかないと、階層がどんどん深くなってしまいます。以前にもこちらで書いたのですが、固定ページで階層構造を作るには、管理画面の固定ページと、カスタムメニューがあります。カスタムメニューはマウスで簡単に階層構造が作れる機能ではありますが、ホームページの構造に関わる固定ページでの階層管理は、固定ページの階層でしっかり作成する必要があります。それに大量のページの階層をマウスで再度構築るというのは、かなり面倒な作業です。固定ページの階層構造を表示してくれるwp_list_pagesはwordpress初期からある実に頼りになる関数です。この関数を使って階層を表示する事にします。wp_list_pageでも実現します。今回お題の件ですが、サイト製作の時に需要があったので、探してみたのですが、見つかりませんでした。昔はプラグインがあった気がしたのですが、どこにいったのか。公式ページのwp_list_pagesのマニュアルにそれっぽい事が書いてあるのですが、、いくつか実装例をみると、若干違ったり、ID直接指定していたりと、あまり実用には向かないようです。「現在のページを含む先祖達のページIDを親に持つページ」以外を非表示にするというフィルターを設置します。便利な関数get_post_ancestorsです。この現在のページの親階層をたどってその祖先達のIDを配列で返してくれます。パンくずの表示につかえますね。get_pagesにフィルターを追加するか、次に紹介するWalker_Pageを継承したwalkメソッドを定義します。);}}次にelementに対しフィルターをかけます。$out_elements;}これで定義ができました。呼び出して実際に利用してみます。表示したい部分のテンプレートの箇所に下のコードを入れます。?>うまくいったかと思います。wp_list_pagesのカスタマイズをウィジェットで利用もし、wp_list_pagesではなく、ウィジェットの「固定ページ」で資料したい場合は下記のようにwp_list_pagesに対する引数walkerの設定を変更するようにfunctions.phpに追加します。);これで「外観」>「ウィジェット」から固定ページをセットするだけで、関連ページのみの表示をする環境が得られます。以上、固定ページのメニューを表示する時に、余計な情報を隠しておくというのはありがちなtipsかと思ったのですが、いろいろネットを探し回っても見つからなかったので書いてみました。お役に立てれば幸いです。