# WordPressでサブページのナビゲーション

- リンク: https://torounit.com/blog/wordpress%e3%81%a7%e3%82%b5%e3%83%96%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e3%83%8a%e3%83%93%e3%82%b2%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3/
- 公開日: 2011-09-26T09:47:16+09:00
- 作成者: Toro\_Unit

企業サイト等を作るとき、サブページにナビゲーションに用意することって結構あると思い
ます。サイドバーあたりに。

たとえば
 [html] <nav class="sideNav"> <h2><a href="#">会社情報</a></h2> <ul> <li
><a href="#">会社概要</a></li> <li><a href="#">事業内容</a></li> <li><a href="#"
>社長挨拶</a></li> </ul> </nav> [/html] みたいな感じの。

それのWordPressでの実装です。
 [php] <nav class="sideNav"> <?php if(is_page()){ 
$rootId = array_pop(get_post_ancestors( $id )); if(!$rootId){ $rootId = $id; } ?
> <h2><a href="<?php get_permalink($rootId);?>"><?php echo get_the_title($rootId);?
></a></h2> <ul> <?php wp_list_pages("title_li=&child_of=$rootId" );?> </ul>

<?php
 }else { ?> <h2><a href="/news">ニュース</a></h2> <ul> <?php wp_get_archives();?
> </ul>

<?php
 } ?> </nav> [/php]

get_post_ancestors( $id )親ページのリストが配列で出るのですが、最後の要素が一番上の
階層のページなので、それをarray_popで持って来ます。
 wp_list_pagesで取得したIDの
子孫のページだけ吐き出すようにしています。
