Я создал несколько меню, и теперь я пытаюсь настроить условную конструкцию с помощью wp_nav_menu в header.php, но поведение на самом деле не такое, как ожидалось. я делаю что-то вроде
<?php
if ( is_front_page() )
{
wp_nav_menu( array( 'container_class' => 'menu-header', 'menu' => '68' ));
}
elseif ( is_single() )
{
wp_nav_menu( array( 'container_class' => 'menu-header', 'menu' => '69' ) );
}
else
{
wp_nav_menu( array( 'container_class' => 'menu-header', 'menu' => '33' ));
}
?>
последнее «еще» ловит 404 и страницы, но с архивами (категории, теги, поиск, автор,…) меню возвращается к резервному варианту по умолчанию (wp_list_pages) вместо меню 33. Есть идеи, почему это происходит? Примечание. Я изменяю тему TwentyTen.
Меню 33 существует? (этот идентификатор определенно правильный?) Если да, есть ли в нем какие-либо предметы?… также, какие-либо плагины установлены? И если да, то пробовали ли вы без их включения?
В идеале вы должны передать аргумент «theme_location» в wp_nav_menu().
Зарегистрируйте свои три меню в functions.php:
Затем замените код выше на:
Затем убедитесь, что для каждого местоположения темы определено соответствующее пользовательское меню, через Панель управления -> Внешний вид -> Меню.
Если вы используете
menu
параметр, вы также можете использоватьname
илиslug
. Пожалуйста, попробуйте и их. Если вы уверены в идентификаторе, вы также можете попробовать использоватьmenu_id
вместо него.Я обнаружил, что проблема была каким-то образом вызвана фильтром pre_get_posts в файле functions.php. На самом деле, у меня раньше были проблемы с этим фильтром, так что я должен был знать 😉 Ура!