WordPress 4.0 Разбитое меню

Я обновил до 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 */

0

Решение

Сначала я попытался установить ключ меню в 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',
//...
));
}
0

Другие решения

Это ‘lblechl’ с форумов WP, которые вы упомянули.

С предоставленным кодом я замечаю, что вызов register_nav_menus обернут в функцию. Что-нибудь в коде вызывает функцию bones_theme_support? Если нет, вам придется подключить эту функцию к чему-либо, когда ваша тема загружена.

Также убедитесь, что «Мобильное меню» — это точное название созданного меню.

Держите меня в курсе более подробной информации, если оба из них, кажется, в порядке, и у вас все еще есть проблемы.

0

По вопросам рекламы [email protected]