固定ページのページメニュー

最近はちょっと忙しくて更新が・・・。

さて、よく使うのに毎回考えて作ってたので、いい加減書いておこうと。
そのための備忘録だったし。

固定ページで親子関係を作ったとき、それをカテゴリのように見立てて、メニューを作成したい。
具体的には、親ページが表示されていても、子ページが表示されていても、サイドのカラムに同じメニューを表示する。

まず、functions.phpに、Wordpress Codexに載っているコードをそのまま追加する。

function is_subpage() {
	global $post;                                 // $post には現在の固定ページの情報があります
	if ( is_page() && $post->post_parent ) {      // 現在の固定ページが親ページを持つかどうかをチェックします
		return $post->post_parent;                      // 親ページの ID を返します
	} else {                                      // 親ページを持たないので...
		return false;                          // ...false を返します
	}
};

続いて、メニューを表示したい場所に以下のコード。

<div id="side_contents">
	<?php
		if ( is_subpage() == false ){
			//カテゴリトップページ
			$p_id = $post->ID;
			
		}else{
			//カテゴリサブページ
			$p_id = is_subpage();
		}
	?>

	<h2><?php echo get_the_title($p_id); ?> メニュー</h2>
	<nav>
	<ul>
	<?php $params='depth=2&child_of=' . $p_id . '&title_li=&sort_column=ID' ;?>
	<?php wp_list_pages($params); ?>
	</ul>
	</nav>
</div>

HTMLタグやID以外の$paramsの内容は任意に変更。