Не правильно работают параметры 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 шт):

Автор решения: Marina Sorochan

'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')
    ] );

} )
→ Ссылка