Вопрос по wordpress, wordpress-theming – Как объединить два меню, управляемых отдельно в WordPress для отображения как одно в теме переднего плана?

8

Я работаю над темой wp для сайта, который уже построен на wp и имеет очень большое меню, которое разделено на два меню в wp admin.

Я хочу объединить эти два меню в тему в одном UL. В настоящее время он генерирует два меню в разных контейнерах div и ul li и нарушает стили & amp; Я применил к нему.

Как я могу объединить эти два меню в один ul li в одном контейнере?

Ваш Ответ

3   ответа
2

Вы можете комбинировать их с этим методом. Он содержит некоторые классы меню, сгенерированные WP.

// two WordPress menus combined into one.
// first menu.
$menu = wp_nav_menu( array(
    'theme_location'=> 'secondary', // or whatever location
    'fallback_cb'   => false,
    'container'     => '',
    'items_wrap' => '%3$s',
    'echo' => false
) );
// include all of the menu items from the first inside the second menu.
wp_nav_menu( array(
    'theme_location' => 'primary', // or whatever location
    'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s ' . $menu . '</ul>',
) );
17

хорошо, так что если вы используете wp_nav_menu ()

попробуйте использовать что-то вроде

<ul id="MyMenu">
  <?php wp_nav_menu( array('menu' => 'FirstMenu', 'items_wrap' => '%3$s' ) ); ?>
  <?php wp_nav_menu( array('menu' => 'SecondMenu', 'items_wrap' => '%3$s' ) ); ?>
</ul>

использование items_wrap удалит ul из каждого меню, поэтому инкапсулируйте меню в уже определенный тег ul, wp_nav_menu будет выдавать только теги li.

См. Снятие ul wrap:http://codex.wordpress.org/Function_Reference/wp_nav_menu

M

Я уже пробовал это, но это, похоже, не работает. Я использую корни темы. Krunal
Вы можете опубликовать код, используемый для генерации wp_nav_menu? то есть: register_nav_menus (array ('FirstMenu' = & gt; "Menu1", "SecondMenu" = & gt; "Menu2")); а также опубликуйте код, который вы пытаетесь использовать. Я знаю, что этот метод будет работать, я в настоящее время использую его на другом сайте.
это кажется ответом, но не работает с корневой темой, может быть что-то не так с темой или пользовательским кодом, который мы сделали. Нужно проверить это. Krunal
12

Проблема в том, что каждыйwp_nav_menu все еще упакован в отдельные элементы div. Вы также должны отключить эти div, добавив"'container' => false" каждому так:

<ul id="MyMenu">
  <?php wp_nav_menu( array('menu' => 'FirstMenu', 'items_wrap' => '%3$s', 'container' => false ) ); ?>
  <?php wp_nav_menu( array('menu' => 'SecondMenu', 'items_wrap' => '%3$s', 'container' => false ) ); ?>
</ul>

Похожие вопросы