Не правильно работают параметры wp_nav_menu()
Суть проблемы состоит в том что параметры функции wp_nav_menu() странно себя ведут, например:
<?php
wp_nav_menu( [
'theme_location' => 'menu-header',
'container' => false,
'menu_class' => 'menu__list',
'menu_id' => false,
'echo' => true,
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
] );
?>
При таких заданных параметрах почему-то контейнер не отключается, но если напишу допустим nav, то тег контейнера меняется, к тому же 'menu_class' => 'menu__list',
меняет класс не у тега <ul>
а у контейнера...
Вот так у меня регистрируется меню:
function test_menus(){
$locations = array(
'menu-header' => __('Header Menu', 'test'),
'footer' => __('Footer Menu', 'test')
);
register_nav_menus($locations);
}
add_action( 'init','test_menus');
Вот сайт: https://ce32527-wordpress-qrqjs.tw1.ru/
Ответы (1 шт):
'container' => false, будет проигнорирован если у вас не назначено никакое меню на локацию которую вы вызываете. Создайте и назнате меню из админки.
Выводите меню с проверкой:
<?php
if (has_nav_menu('menu-header')) :
wp_nav_menu(
array(
'container' => false,
'theme_location' => 'menu-header',
'menu_class' => 'menu__list',
)
);
endif;
?>
Еще момент, регистрация меню вешается не на 'init', а на другой екшн - 'after_setup_theme', например так:
add_action( 'after_setup_theme', function(){
register_nav_menus( [
'menu-header' => __('Header Menu', 'test'),
'footer' => __('Footer Menu', 'test')
] );
} )