最近はちょっと忙しくて更新が・・・。
さて、よく使うのに毎回考えて作ってたので、いい加減書いておこうと。
そのための備忘録だったし。
固定ページで親子関係を作ったとき、それをカテゴリのように見立てて、メニューを作成したい。
具体的には、親ページが表示されていても、子ページが表示されていても、サイドのカラムに同じメニューを表示する。
まず、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の内容は任意に変更。