как установить более одного меню в одном и том же месте

В моей теме мне нужно отображать различные меню слева на разных страницах. поэтому я зарегистрирую вторичное меню тоже этим

register_nav_menus( array( 'primary' => __( 'Top Menu' ), 'left' => __( 'Left Menu' ) ) ); 

и я использовал плагин с именем CE WP-Menu per Page чтобы выбрать меню из раскрывающегося списка, показанного на странице редактирования, так что я могу назначить другое меню для разных страниц. и в моем шаблоне страницы я написал приведенный ниже код для отображения меню

 wp_nav_menu( array( 'container' => false, 'menu_id' => 'menu-left-side-menu', 'menu_class' => 'menu', 'theme_location' => 'left' ) ); 

В Dashboard-> Appearnce-> меню я создал 3 меню (для теста фактически нет: меню зависит от нет: созданных страниц). Они есть

 1.top menu 2. left menu1 3. left menu2 

и назначил primary для верхнего меню и left для левого меню1. все отлично работало. но мне нужно назначить левое меню2 для другой страницы и отобразить его. для этого, когда я назначаю левое меню2 left , предыдущее назначение левого меню1 перезаписывается. и теперь left menu1 не отображается на странице.

проблема

Есть ли способ заставить меню wordpress поддерживать назначение более одного меню в том же месте?

Надеюсь, мое описание проблемы понятно. если необходимо какое-либо разъяснение, скажите мне.

Вы можете использовать условную is_page для определения различных пунктов меню по своему усмотрению .

 if ( is_page( 'About' ) ) { wp_nav_menu( array( 'container' => false, 'menu_id' => 'menu-left-side-menu', 'menu_class' => 'menu', 'theme_location' => 'about-page' ) ); } elseif ( is_page( 'Services' ) ) { wp_nav_menu( array( 'container' => false, 'menu_id' => 'menu-left-side-menu', 'menu_class' => 'menu', 'theme_location' => 'services-page' ) ); } elseif ( is_page( 'Contact' ) ) { wp_nav_menu( array( 'container' => false, 'menu_id' => 'menu-left-side-menu', 'menu_class' => 'menu', 'theme_location' => 'contact-page' ) ); } else { wp_nav_menu( array( 'container' => false, 'menu_id' => 'menu-left-side-menu', 'menu_class' => 'menu', 'theme_location' => 'default-menu' ) ); } 

И вы можете определить столько меню, сколько хотите в своей теме.

 register_nav_menus( array( 'about-page' => __( 'About Page Menu' ), 'services-page' => __( 'Services Page Menu' ), 'contact-page' => __( 'Contact Page Menu' ), 'default-page' => __( 'Default Page Menu' ), 'left' => __( 'Left Menu' ) ) ); 

Если вы не хотите использовать много меню, вы можете просто добавить все элементы в одно меню и скрыть необязательные пункты меню на каждой странице с помощью классов тела WordPress и стилей CSS.