2014-09-16 8 views
0

Я обновился до WP 4.0 на днях и заметил, что мои меню прибегают к первому доступному алфавитному меню. Я сделал некоторые поиски и обнаружил, что у некоторых других людей была одна и та же проблема. До сих пор, единственный ответ, который я видел по этому вопросу здесь:Wordpress 4.0 Broken Menu

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() до $ места и $ описания, как это:

// 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().

Надеюсь, это поможет.

EDIT: В вашем случае я вижу, что вы используете помощник локализации «__()» в ключе меню, которое я не знаю, если есть специальное использование внутри 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

Вы никогда не хотите редактировать содержимое папки wp-admin напрямую, поскольку они могут быть переопределены в будущих обновлениях кода, и ваши изменения будут потеряны, что приведет к кошмару обслуживания, как указано здесь. Http: //codex.wordpress .org/Files_Automatically_Replaced_by_Core_Upgrade. –

+0

Edrpls, вы бы (обычно) хотели бы использовать функцию __() для интернационализации при создании плагинов или тем для использования на нескольких языках. Таким образом, переводы для «Мобильного меню» могут отображаться на испанском, немецком и т. Д. Позже по дороге, если WordPress настроен на работу с несколькими языками.Я могу проверить использование функции в меню, не мешая работе кода из личных результатов в WP 4.0. Это лучшая практика, но не требуется, если вы не заботитесь о других языковых переводах и не собираетесь делиться своим кодом с миром. –

+0

Люк, я хотел отредактировать конфигурацию wp с панели управления, не редактируя непосредственно какие-либо файлы wp-admin. Кроме того, спасибо за разъяснение на __() – edrpls

0

Это «lblechl» из форумов WP, которые вы упомянули.

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

Кроме того, убедитесь, что «Мобильное меню» - точное имя созданного меню.

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

+0

Да, вызывается bones_theme_support. Я также подтвердил название меню, и, похоже, все в порядке. На самом деле это проблема с несколькими сайтами (некоторые из них были куплены темы, а некоторые из них были созданы на заказ с использованием костей) с момента обновления для 4.0. –