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で適宜装飾してください。


最近のコメント