サイドバーに下層ページリストを設置したけど、カスタム投稿タイプとかお問い合わせとか色々考慮してみた。
というわけで、、
わたしのサイドバー公開!(〃∇〃)
<div id="sidebar"> <?php global $wp_query; $page_id = $wp_query->post->ID; $parent_id = $wp_query->post->post_parent; ?> <?php /********** お問い合わせページは親子があるけど親のみの表示 **********/ if(is_page('contact') || is_page('thanks')){ ?> <h2 class="current">お問い合わせ</h2> <?php /********** 404 **********/ }elseif(is_404()){ ?> <h2 class="current">404 not found</h2> <?php /********** 親があるページ **********/ }elseif($wp_query->post->post_parent){ ?> <h2><a href="<?php the_permalink($parent_id); ?>"><?php echo get_the_title($parent_id); ?></a></h2> <?php if(wp_list_pages("title_li=&child_of=".$parent_id."&echo=0")) { ?> <ul class="child_pagelist"> <?php wp_list_pages("title_li=&child_of=".$parent_id); ?> </ul> <?php } ?> <?php /********** 子兄弟があるページ **********/ }elseif(!is_404() && wp_list_pages("title_li=&child_of=".$page_id."&echo=0")){ ?> <h2 class="current"><?php the_title(); ?></h2> <?php if(wp_list_pages("title_li=&child_of=".$page_id."&echo=0")){ ?> <ul class="child_pagelist"> <?php wp_list_pages("title_li=&child_of=".$page_id); ?> </ul> <?php } ?> <?php /********** カスタム投稿タイプ(制作実績:works、実績カテゴリー:cat_works) **********/ }elseif(is_post_type_archive('works') || is_tax('cat_works') || is_singular('works')){ ?> <?php if(is_tax('cat_works') || is_singular('works')){ ?><h2><a href="<?php echo home_url(); ?>/works/">制作実績</a></h2><?php }else{ ?><h2 class="current">制作実績</h2><?php } ?> <ul class="child_pagelist"> <?php wp_list_categories("post_type=works&taxonomy=cat_works&title_li="); ?> </ul> <?php /********** 投稿(アーカイブページスラッグ:news) **********/ }elseif(is_page('news') || is_category() || is_single()){ ?> <?php if(is_category() || is_single()){ ?><h2><a href="<?php echo home_url(); ?>/news/">新着情報</a></h2><?php }else{ ?><h2 class="current">新着情報</h2><?php } ?> <ul class="child_pagelist"> <?php wp_list_categories("title_li="); ?> </ul> <?php /********** 親子兄弟がないページ **********/ }else{ ?> <h2 class="current"><?php the_title(); ?></h2> <?php } ?> </div>
出力されるHTML
<div id="sidebar"> <h2 class="current">親ページタイトル</h2> <ul class="child_pagelist"> <li class="page_item page-item-30"><a href="#">子ページ1</a></li> <li class="page_item page-item-31"><a href="#">子ページ2</a></li> <li class="page_item page-item-32"><a href="#">子ページ3</a></li> <li class="page_item page-item-33"><a href="#">子ページ4</a></li> <li class="page_item page-item-34"><a href="#">子ページ5</a></li> </ul> </div>
親のページにいる時だけh2にcurrentクラスが付きます。
子ページにいる時はリストにcurrent_page_itemクラスが付与されます。
それらを使って、CSSで装飾してくださ〜い
他に良い方法あったら教えてください。。