register_nav_menus() не регистрирует меню
Помогите с регистрацией меню:
Я следовал этому руководству (http://codex.wordpress.org/Navigation_Menus) шаг за шагом.
Добавил следующий код в functions.php:
function register_my_menus() {
register_nav_menus(
array('header-menu' => __( 'Верхнее меню' ) )
);
}
add_action( 'init', 'register_my_menus' );
Но в руководстве говорится, что это должно привести к появлению меню в административной панели Внешний вид -> Меню в блоке "Расположение меню" как "Верхнее меню".
Когда я перехожу в раздел Внешний вид -> Меню, все опции неактивны (серые), и нет опции "Расположение меню"
Вам не нужно добавлять никаких действий для регистрации вашего навигационного меню. Вот несколько быстрых шагов, чтобы ваше навигационное меню WordPress заработало...
Регистрация навигационного меню
if (function_exists('register_nav_menu'))
{
register_nav_menu('header_menu', 'Header Menu');
}
Определение и использование навигационного меню в вашей теме: Обычно мы размещаем DIV-код меню в файле header.php; поэтому я предполагаю, что у вас он также находится в этом файле. Откройте этот файл и найдите DIV-контейнер, где должно появиться ваше навигационное меню WordPress. Вот пример из одной из моих недавних тем WordPress для вашего удобства:
<div class="css-nav" >
<?php wp_nav_menu( array(
'sort_column' => 'menu_order',
'theme_location' => 'header_menu',
'menu_class' => 'css-menu',
'title_li' => '<div class="l"></div>',
'link_before' => '<span class="l">',
'link_after' => '</span>'
) ); ?> </div>
После добавления этого кода перейдите в WP Админку - Меню. Создайте новое меню, если у вас его еще нет. Как только вы создадите меню, вы должны увидеть метабокс "Расположение в теме" с левой стороны области управления пунктами меню.
Надеюсь, это поможет. :-)
С уважением,
Рутурадж.
+1 за хорошо оформленный, качественный ответ от нового пользователя. Добро пожаловать на WPSE. :)
Jared
function_exists('register_nav_menu') не делает ничего полезного: nav-menu.php загружается до functions.php темы (см. wp-settings.php). Параметры 'sort_column' и 'title_li' не являются допустимыми аргументами.
fuxia
Спасибо... Это работает! Наконец-то! Документации WordPress серьезно не хватает обновлений
php-b-grader
Вау! Одно из 3 меню появилось сразу после того, как я добавил условие (function_exists('register_nav_menu')), но как сделать, чтобы остальные два тоже отображались? if (function_exists('register_nav_menu')) {
`register_nav_menus('headerMenuLocation', 'Header Menu Location');`
`register_nav_menus('footerLocationOne', 'Footer Location One');`
`register_nav_menus('footerLocationTwo', 'Footer Location Two'); }`
YCode