例えばある飲食店の数店舗を紹介するページがあり、その中に各店舗のメニューページ、クーポンページ、アクセスページのナビリストを同じデザインで設置したいとする。
top(祖) ┣shop1(親) ┃ ┣menu(子) ┃ ┣coupon(子) ┃ ┗access(子) ┃ ┣shop2(親) ┃ ┣menu(子) ┃ ┣coupon(子) ┃ ┗access(子) ┃ ┗shop3(親) ┣menu(子) ┣coupon(子) ┗access(子)
ナビは親ページ下の各子ページ間を移動できるようにしたい。
<?php // 閲覧しているページの親スラッグを取得 $parent_slug = get_parent_slug(); $shopnav = array("menu" => array("Menu", "メニュー"), "coupon" => array("Coupon", "クーポン"), "access" => array("Access", "アクセス"),); ?> <div class="nav_list"> <?php foreach ($shopmenu as $key => $value): // 子ページのスラッグを指定してパーマリンク取得 $page = get_page_by_path($parent_slug.'/'.$key ); $permalink = get_permalink( $page->ID ); ?> <div class="menu_box"><a href="<?php echo $permalink; ?>"><span class="upper raleway"><?php echo $value[0]; ?></span><span class="rower font_thin"><?php echo $value[1]; ?></span></a></div> <?php endforeach; ?> </div>
子ページ一覧を一度に出す関数もあるだろうが、ナビの順番入れ替えや装飾の編集など考えたらこちらの方が簡単と思った。