Я обновил до WP 4.0 на днях и заметил, что мои меню прибегали к первому доступному алфавитному меню. Я провел некоторые поиски и обнаружил, что довольно много других людей имели такую же проблему. Пока единственный ответ, который я видел по этому вопросу, здесь:
http://wordpress.org/support/topic/wp-40-broke-main-menu?replies=25
Пользователь «lblechl» написал: «Убедитесь, что массивы аргументов, которые вы отправляете в wp_nav_menu, не содержат завершающих символов, лишних запятых, неправильных параметров и т. Д.»
Я просмотрел свою тему и сравнил ее с оригинальной версией темы развития костей, но, похоже, не вижу, в чем проблема. Кто-нибудь еще испытывал это?
Вот код, который я использую:
// REGISTERING THE MENU
function bones_theme_support() {
register_nav_menus(
array(
'mobile-nav' => __( 'The Mobile Menu', 'bonestheme' ) // main nav in header
)
);
}
// END REGISTERING THE MENU
// THE MENU
function bones_mobile_nav() {
wp_nav_menu(array(
'container' => false, // remove nav container
'container_class' => '', // class of container (should you choose to use it)
'menu' => __( 'The Mobile Menu', 'bonestheme' ), // nav name
'menu_class' => '', // adding custom nav class
'theme_location' => '', // where it's located in the theme
'before' => '', // before the menu
'after' => '', // after the menu
'link_before' => '', // before each link
'link_after' => '', // after each link
'depth' => 0, // limit the depth of the nav
'fallback_cb' => 'bones_mobile_nav_fallback' // fallback function
));
}
/* END THE MENU */
// THE FALLBACK
function bones_mobile_nav_fallback() {
wp_page_menu( array(
'show_home' => true,
'menu_class' => '', // adding custom nav class
'include' => '',
'exclude' => '',
'echo' => true,
'link_before' => '', // before each link
'link_after' => '' // after each link
) );
}
/* END THE FALLBACK */
Сначала я попытался установить ключ меню в wp_nav_menu () в $ location и $ description следующим образом:
// Registering the menu:
register_nav_menu( 'my_menu', 'My Menu');
// Inside the view I tried with the $location:
wp_nav_menu(array('menu' => 'my_menu'))
// and with the $description:
wp_nav_menu(array('menu' => 'My Menu'))
Ни один из них не работал, пока я не попробовал с именем меню, которое вы указали:
yoursite.com/wp-admin/nav-menus.php
Допустим, я установил имя меню в «Пример меню»
Затем в представлении замените значение меню на имя меню, которое вы установили ранее (yoursite.com/wp-admin/nav-menus.php):
wp_nav_menu(array('menu' => 'Example Menu'))
Это заставило меня задуматься, вероятно, я не правильно понял документацию, так как думал, что вы можете использовать как $ location, так и $ description из revister_nav_menu () в wp_nav_menu ().
Надеюсь это поможет.
РЕДАКТИРОВАТЬ: В вашем случае я вижу, что вы используете помощника по локализации «__ ()» в ключе меню, который я не знаю, имеет ли специальное использование внутри WP, но я думаю, вы не должны его использовать:
function bones_mobile_nav() {
wp_nav_menu(array(
//...
// This is how you are doing it:
'menu' => __( 'The Mobile Menu', 'bonestheme' ),
//The value should be the string set in yoursite.com/wp-admin/nav-menus.php:
'menu' => 'Example Menu',
//...
));
}
Это ‘lblechl’ с форумов WP, которые вы упомянули.
С предоставленным кодом я замечаю, что вызов register_nav_menus обернут в функцию. Что-нибудь в коде вызывает функцию bones_theme_support? Если нет, вам придется подключить эту функцию к чему-либо, когда ваша тема загружена.
Также убедитесь, что «Мобильное меню» — это точное название созданного меню.
Держите меня в курсе более подробной информации, если оба из них, кажется, в порядке, и у вас все еще есть проблемы.