0

これらの 2 つのコードを組み合わせるには、助けが必要です。

これ:

<?php wp_nav_menu(
                array(
                    'theme_location'  => 'primary',
                    'container_class' => 'collapse navbar-collapse',
                    'container_id'    => 'navbarNavDropdown',
                    'menu_class'      => 'navbar-nav',
                    'fallback_cb'     => '',
                    'menu_id'         => 'main-menu',
                    'walker'          => new rorentrep_WP_Bootstrap_Navwalker(),
                )
            );
?>

そしてこれ ( https://www.minddevelopmentanddesign.com/blog/showing-current-pages-parents-sub-menu-items-custom-nav-menu-wordpress/から):

<?php
         $section_id = empty( $post->ancestors ) ? $post->ID : end( $post->ancestors );
         $locations = get_nav_menu_locations();
         $menu = wp_get_nav_menu_object( $locations[ 'primary' ] ); // 'primary' is our nav menu's name
         $menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'post_parent' => $section_id ) );

             if( !empty( $menu_items ) ) {
                 echo '<ul class="section-submenu">';
                 foreach( $menu_items as $menu_item ) {
                 echo '<li><a href="' . $menu_item->url . '">' . $menu_item->title . '</a></li>';
             }
             echo '</ul>';
             }
?>

より正確には、2 番目のコードがエコーするリンクを最初のコードとして表示する必要があります。

私のページの構造は次のようになります。

Business
 - Sub page a
 - Sub page b
 - Sub page c

Private
 - Sub page x
 - Sub page y
 - Sub page z

ビジネスの子ページにアクセスするたびに、メニューにサブページ ac のみをリストするようにし、プライベートの子ページにアクセスするときは、メニューにサブページ xz のみをリストするようにします。

複数のページを追加できるので、特定のページ ID をターゲットにしたくありません。

これの主な理由は、出力コードが wp_nav_menu のように walker ブートストラップ nav (現在のクラスを nav-items に追加) を使用してラップおよびネストするためです。

4

1 に答える 1