WordPressの逆引き作業メモ

このブログはWordPressで業務に使った時の自分の作業用のポイントメモです。

WordPressで子ページ一覧の表示を1階層だけに絞る

現在のページの子ページ一覧を表示するのはプラグインも提供されています。

CC Child Pages – WordPress プラグイン | WordPress.org 日本語

CC Child Pagesをインストールすると

[child_pages]

というショートコードを入れるだけで、そのページの子ページ一覧を出力してくれます。

カラムを分けたり特定のページを省いたり、いろいろな使い方があるので解説を見てください。

queryでも簡単に取得できます。 現在のページを

global $post;

で取得して

$getpages = get_pages(array(
'child_of' =>$post->ID,
'number'=>0,
'sort_column'=>'menu_order',
'sort_order' => 'asc',
));

で、子ページ一覧を取得できます。

foreachで取り出せば子ページのリストやコンテンツサマリーを表示できます。

 

 

 

ただ固定ページを階層をいくつか設けて使いたいときに、このqueryでは孫ページや、下の階層のページ全てが表示されてしまいます。 階層をうまく使いページを構成したい時に、自分のページの直下の一覧だけのリストが欲しい時などは次のqueryで取得することができる。

 

$getpages = get_pages(array(
'child_of' =>$post->ID,
'parent' => $post->ID,
'number'=>0,
'sort_column'=>'menu_order',
'sort_order' => 'asc',
));

'parent' => $post->ID で、自分の子ページでありながら、かつ親ページも自分という条件を指定します。 これにより

 

トップページ
  L 一覧 // 作品A,B,C
    L 作品A
    L 作品B
    L 作品C // 作品C-1,C-2
      L 作品群C-1
      L 作品群C-2

という表示が可能になります。

functions.phpに自分でショートコードで登録しておくとさらに便利に使う事ができます。