как назначить ID меню в WordPress
Следующий код не создает UL с ID "nav". Вместо этого выводится:
<div class="menu"><ul>
Вот используемый код:
wp_nav_menu( array( 'theme_location' => 'menu-1', 'container_id' => 'nav';
Согласно документации WP Codex, это должно работать. Почему это не работает?
Версия WP = 3.5
Обновление
Теперь у меня:
wp_nav_menu( array( 'theme_location' => 'menu-1', 'items_wrap' => '<ul id="nav">%3$s</ul>', 'menu_id' => 'nav'));
но это тоже не работает.

Правильный параметр для ul
— это menu_id
, а для контейнера — container_id
. Однако ul
работает только если передать …
'<ul id="%1$s" class="%2$s">%3$s</ul>'
… в качестве аргумента items_wrap
.
Можно явно указать значение, например так:
wp_nav_menu(
array (
'items_wrap' => '<ul id="nav">%3$s</ul>'
'theme_location' => 'top-menu'
)
);
Смотрите Документацию по аргументу "items_wrap" для wp_nav_menu

Теперь у меня wp_nav_menu( array( 'theme_location' => 'menu-1', 'items_wrap' => '<ul id="nav">%3$s</ul>', 'menu_id' => 'nav'));

@Steve Отключите все плагины. Вы что-то серьезно сломали. Мое решение работает во всех случаях.

По моему мнению, menu-1
должен быть ID
вашего меню. Пожалуйста, ознакомьтесь с параметрами здесь и укажите соответствующие параметры.
На мой взгляд, ваш код должен выглядеть так:
wp_nav_menu( array( 'menu' => 'menu-1', 'container_id' => 'nav' ));

Это может быть полезно, мне это помогло разобраться.
<?php wp_nav_menu( array(
'menu' => 0,
'container' =>false,
'menu_class' => 'nav',
'echo' => true,
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'depth' => 0,
'walker' => new description_walker())
);?>
Этот код будет присваивать вашим меню случайные ID при их создании. Надеюсь, это было полезно, не уверен, что правильно понял вопрос.
