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