WordPressで親子ページの一覧を表示

このエントリーをはてなブックマークに追加

WordPressサイトを制作している中で、親子ページの一覧をサイドバーに出力したいという場合が出てきます。
いろいろなところで書かれているのでそれを参考に、自分が出力しやすい形に書き換えました。

参考にしたのは、WordPressのフォーラムと親子ページの分岐について書かれたブログ

<ul>
<?php
if ( is_page() && $post->post_parent ) { //子ページなら
	$ancestor = array_pop( get_post_ancestors( $post->ID ) );
	echo '
	<li class="list-title"><a href="' . get_permalink($ancestor) . '">' . get_the_title($ancestor) . '</a></li>
'; //親ページのタイトルを出力
	wp_list_pages('title_li=&child_of=' . $ancestor); //子ページの一覧を出力
} else if( is_page() ) { //子ページ以外のページなら
	$post = $wp_query->post;
	$id = $post->ID;
	echo '
	<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>
'; //表示中のページのタイトルを出力
	wp_list_pages('title_li=&child_of=' . $id); //子ページの一覧を出力
}
?>
</ul>

親ページのリンクにだけclassを入れてあるのでデザインを変えられるようになってます。

お問い合わせはこちら