この記事は2年以上前に書かれた記事です。現状にそぐわないかもなのでご注意を。

固定ページの子ページ一覧を表示するショートコード

それなりの規模のサイトを作成する場合、ページ構成に親子関係(階層構造)をもたせることはよくあります。
その場合、大抵は親ページに子ページの一覧を表示させると思いますが、Wordpressにはこれを自動で生成する機能はありません。

そこで、これを簡単に表示させることのできるショートコードを作成してみました。

仕様

  • ショートコードを埋め込むページの子ページ一覧を表示
  • 子ページ一覧を表示したい親ページをスラッグで指定することで、好きな記事・ページに子ページ一覧を挿入できる

functions.php

function childpages($atts) {
extract(shortcode_atts(array(
'parent' => null
), $atts));
if (empty($parent)) { // 指定なしなら自分の子
$top_post = get_post($post->ID);
} else if ($parent=="parent") { // 自分の親ページを親とする parent="parent"
$top_post = get_post($post->ID);
$top_post = get_post($top_post->post_parent);
} else { // スラッグ指定ページを親とする parent="(slug)"
$top_post = get_page_by_path($parent);
}
$children = wp_list_pages("title_li=&child_of=".$top_post->ID."&echo=0");
return '<ul class="child-page">'.$children.'</ul>';
}
add_shortcode("childpages", "childpages");

使い方

[childpages]

例:自分の子ページ一覧を表示する

[childpages parent="parent"]

例:共通の親ページをもつ子ページ一覧を表示する

[childpages parent="slug"]

例:指定(スラッグ)ページの子ページ一覧を表示する

 

スポンサーリンク