私が持っているのは、Wordpress の非常に深いメニュー構造で、一部のページでは 5 レベルの深さです。私が必要としているのは、現在のページの上にあるすべての親のメニューです。たとえば、私がここにいる場合:
Main / Sub / SubSub / SubSubSubお互いの上に見たい:
- 全メインメニュー
- サブのすべてのアイテムのメニュー
- SubSubSub を含む、SubSub 内のすべての項目のメニュー
次のように wp_list_pages 関数を使用しています。
<?php
if ( $post->post_parent ) {
$args = array(
'child_of' => $post->ID,
'depth' => 1,
'sort_column' => 'post_date',
'sort_order' => 'DESC',
'title_li' => ''
);
echo '<nav id="subnav"><ul>';
wp_list_pages( $args );
echo '</ul></nav>';
} ?>
しかし、自分がLv2以下かどうかはわかりません。このビットで先祖メニュー(常に表示)を見つけました:
'child_of' => get_post_top_ancestor_id()
しかし、最上位の祖先ではない他のすべての親に対して1つのメニューをリストすることはできません。ここでこのコードを変更してみました: https://wordpress.stackexchange.com/questions/15141/list-wordpress-custom-menus-active-parent-levels-children-as-separate-menu
ここのようにすべての親をループします: http://wordpress.org/support/topic/get-and-display-parent-pages-of-a-menu
主な問題は、私は PHP プログラマーではないため、独自の関数を作成することは実際にはオプションではないことです。どんな助けでも大歓迎です