Есть 2 области меню (предположим шапка и футер). В шапке свое построение (свои классы и тд), а в футере свое. По логике так:
register_nav_menus(array(
'top' => 'Верхнее меню',
'foo1' => 'Футер 1'
));
add_filter( 'wp_nav_menu_args', 'top' );
function top(){
$args = array(
'container' => false, // (string) Контейнер меню. Обворачиватель ul. Указывается тег контейнера (по умолчанию в тег div)
'menu_class' => 'menu sections', // (string) class самого меню (ul тега)
'menu_id' => '', // (string) id самого меню (ul тега)
'echo' => true, // (boolean) Выводить на экран или возвращать для обработки
'fallback_cb' => 'wp_page_menu', // (string) Используемая (резервная) функция, если меню не существует (не удалось получить)
'before' => '', // (string) Текст перед <a> каждой ссылки
'after' => '', // (string) Текст после </a> каждой ссылки
'link_before' => '', // (string) Текст перед анкором (текстом) ссылки
'link_after' => '', // (string) Текст после анкора (текста) ссылки
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
'depth' => 2, // (integer) Глубина вложенности (0 - неограничена, 2 - двухуровневое меню)
'walker' => '', // (object) Класс собирающий меню. Default: new Walker_Nav_Menu
'theme_location' => 'top' // (string) Расположение меню в шаблоне. (указывается ключ которым было зарегистрировано меню в функции register_nav_menus)
);
return $args;
}
add_filter( 'wp_nav_menu_args', 'footer' );
function footer(){
$args = array(
'container' => false, // (string) Контейнер меню. Обворачиватель ul. Указывается тег контейнера (по умолчанию в тег div)
'menu_class' => 'f-nav f-nav__list', // (string) class самого меню (ul тега)
'menu_id' => '', // (string) id самого меню (ul тега)
'echo' => true, // (boolean) Выводить на экран или возвращать для обработки
'fallback_cb' => 'wp_page_menu', // (string) Используемая (резервная) функция, если меню не существует (не удалось получить)
'before' => '', // (string) Текст перед <a> каждой ссылки
'after' => '', // (string) Текст после </a> каждой ссылки
'link_before' => '', // (string) Текст перед анкором (текстом) ссылки
'link_after' => '', // (string) Текст после анкора (текста) ссылки
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
'depth' => 2, // (integer) Глубина вложенности (0 - неограничена, 2 - двухуровневое меню)
'walker' => '', // (object) Класс собирающий меню. Default: new Walker_Nav_Menu
'theme_location' => 'foo1' // (string) Расположение меню в шаблоне. (указывается ключ которым было зарегистрировано меню в функции register_nav_menus)
);
return $args;
}
Вывожу так:
<?php wp_nav_menu( array('theme_location'=>'foo1') );?>
Но почему-то нижний фильтр перекрывает верхний.
Как избежать такого перекрытия?