WordPressのページ機能では、普通のカテゴリーみたいに親カテゴリを持つことができます。
ということは、それをサブメニューにできるはず…。さらに、子ページができると自動的にメニューが増えてくれれば、なおよし。
wordpressをいじってみた サブナビゲーションの設置 を参考にしつつ
こちらでは、各ページ分sidebar.phpをつくったみたいですが、今回は一括で。
<? global $wp_query; if( empty($wp_query->post->post_parent) ) { $parent = $wp_query->post->ID; } else { $parent = $wp_query->post->post_parent; } ?> <? if(wp_list_pages("title_li=&child_of=$parent&echo=0" )): ?> <ul> <li><a href="<? the_permalink() ?>"><? the_title(); ?>TOP</a></li> <? wp_list_pages("title_li=&child_of=$parent" ); ?> </ul> <? endif; ?>
この記述をpage.テンプレートのサブメニューを出したい部分に追加します。
if関数を使用すれば、index.テンプレートだけで完結できるかもしれませんが、そこらへんはよくわからないのでキラーパス。
書き出されるHTMLソースは
<ul> <li><a href="http://sampleblog/page">親ページタイトルTOP</a></li> <li class="page_item"><a href="http://sampleblog/page/page_child01" title="子ページタイトル01">子ページタイトル01</a></li> <li class="page_item"><a href="http://sampleblog/page/page_child02" title="子ページタイトル02">子ページタイトル02</a></li> ・ ・ ・ </ul>
となります。
ちなみに、親ページタイトルをリストから出す場合は、
<? global $wp_query; if( empty($wp_query->post->post_parent) ) { $parent = $wp_query->post->ID; } else { $parent = $wp_query->post->post_parent; } ?> <? if(wp_list_pages("title_li=&child_of=$parent&echo=0" )): ?> <h3><a href="<? the_permalink() ?>"><? the_title(); ?></a></h3> <ul> <? wp_list_pages("title_li=&child_of=$parent" ); ?> </ul> <? endif; ?>
書き出されるソースは、
<h3><a href="http://sampleblog/page">親ページタイトル</a></h3> <ul> <li class="page_item"><a href="http://sampleblog/page/page_child01" title="子ページタイトル01">子ページタイトル01</a></li> <li class="page_item"><a href="http://sampleblog/page/page_child02" title="子ページタイトル01">子ページタイトル02</a></li> ・ ・ ・ </ul>
あとは、CSSで適宜装飾してください。
最近のコメント