
Приветствую посетителей моего блога!
Постоянный читатель Михаил вновь обратился за WordPress помощью. В этот раз он хочет разобраться как в WordPress создать и вывести второе меню.
Например, у вас есть меню, которое выводится в шапке сайта. Вы хотите выводить еще одно меню в подвале сайта, но это меню должно отличаться от того, что в хедере. В футере вам не нужны выпадающие пункты подменю и, возможно, вы захотите заменить какой-то пункт меню на другую ссылку.
Давайте разберемся как это реализовать.
Как создать второе меню в WordPress
Давайте начнем с создания второго меню в том виде, в котором мы хотим его видеть в футере сайта. Излагаю я на примере темы Twenty Twelve, которая, по умолчанию, поддерживает только одно меню.
Зайдите в админку WordPress и перейдите в Внешний вид – Меню.
Вы попадете на страницу, где будет показана структура вашего базового меню. И здесь же вы можете наблюдать аж две кнопки “Создать меню” (справа вверху и внизу) и еще есть ссылка с текстом “Отредактируйте меню ниже или создайте новое меню”.
Кликайте по кнопке или ссылке создания меню.
На открывшейся странице заполните название меню. Если желаете, чтобы новые страницы верхнего уровня автоматически добавлялись в это меню, то поставьте соответствующую галочку.
Область темы отмечать не надо. Если вы поставите галочку “Основное меню”, то ваше меню в хедере заменится вот этим, которое вы сейчас создаете. Т.е., если вам не нужно второе меню, а вы хотите изменить содержимое основного, тогда отмечайте область темы “Основное меню”.
Далее слева отметьте галочками те страницы, ссылки на которые вы хотите вывести в меню.
Также, ниже вы можете добавить в меню произвольную ссылку или ссылку на рубрику(и).
После того, как выбрали все необходимое для вывода в меню жмите Добавить в меню. И затем кликайте по Сохранить меню.
Все, второе меню создано.
Как вывести меню WordPress
Итак, у нас уже есть второе меню, но оно пока не выводится. Как я написал выше, тема Twenty Twelve изначально использует только одно меню и таких “одноменюшных” тем много. Давайте разберемся как подключить и вывести второе меню.
Меню подключается в файле functions.php следующим образом:
1 2 3 4 |
// This theme uses wp_nav_menu() in one location. register_nav_menu( 'primary', __( 'Primary Menu', 'twentytwelve' ) ); |
Видите, тут и в комментарии написано, что тема использует меню в одном месте.
Указанную выше строку кода, нужно заменить на такой код
1 2 3 4 5 6 |
register_nav_menus( array( 'primary' => __( 'Primary Menu', 'twentytwelve' ), 'footer_menu' => 'Меню в футере', )); |
Функцию подключения одного меню register_nav_menu() мы заменяем функцией подключения нескольких меню – register_nav_menus(). И в качестве параметра передаем её массив наших меню, которые мы хотим зарегистрировать (базовое меню, и наше второе меню для футера).
Теперь откройте файл footer.php и найдите строку вывода меню:
1 2 3 |
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?> |
Здесь нужно изменить значение параметра области theme_location с primary на footer_menu.
1 2 3 |
<?php wp_nav_menu( array( 'theme_location' => 'footer_menu', 'menu_class' => 'nav-menu' ) ); ?> |
Теперь осталось указать для нашего нового меню область вывода footer_menu.
Вернитесь в админку: Внешний вид – Меню. И здесь можно в двух местах задать область вывода для меню:
1. Во вкладке “Управление областями”.
2. Внизу в структуре меню “Области темы”.
Сохраняйте изменения, и проверяйте. В хедере у вас должно остаться базовое меню, а в футере – меню, созданное вами.
Мы успешно создали и вывели второе меню в WordPress.
Задавайте свои вопросы и обращайтесь за WordPress помощью.
До новых встреч!
Здравствуйте Алексей! Вы мне очень помогли данной статьёй, я уже почти оформил свой сайт так, как мне нравится, осталось совсем не много, но я думаю что с вашей помощью я увеличу скорость оформления сайта по своему вкусу в разы. Ответы на свои вопросы по поводу оформления сайта и его улучшения всегда в первую очередь ищу на вашем сайте. Искренне благодарен вам за помощь! Спасибо вам, и удачи!
Здравствуй, Михаил! Спасибо за отзыв! 15 wmr тебе согласно условиям конкурса. Успехов в настройке сайта!
Добрый день! Помогите пожалуйста!
При создании дополнительно меню главное меню в шапке тоже меняется на второе меню. Таким образом получается два одинаковых меню – и в левом сайдбаре и в хедере!
Добрый день, Юлия!
Постарайтесь сделать все внимательно, как описано в статье. Получается, одно и то же меню Вы назначили в разные theme_location.
У меня в теме было только одно меню в шапке. Больше тема не поддерживает. Сделал второе по написанному на три пункта для подвала для пробы. Обрадовался, но когда открыл сайт, оказалось, что эти три пункта добавились в то меню, что в шапке. А как сделать, чтобы они не добавлялись?
Алик, посмотрите комментарий выше. Скорей всего, у вас такая же ситуация.
Не понятно, отправился коммент, не отправился. У вас на комментариях модерация? Могут вирус через коммент запустить, или неадекватов много?
У меня настроена модерация первого комментария. Вот здесь разглагольствовал по этому поводу =)
Ну. тогда прошу прощения за иронию. У меня просто не оказалось ничего со словом menu в подвале. Если сайдбар-меню я могу сделать запросто. Обычный виджет с текстом, Формируешь ссылку на странице, или записи и вставляешь. Поле безграничное. Без всякого залезания в код. А вот в подвале сделать так не получается.
Такой строчки как вы советуете найти, в подвале нет. Потом все добавленные страницы все равно влезли в главное меню, и никак убрать я их не смог. Страницы убрал, а меню так и осталось, как было. Просто поменял страницы на резервные. вернул все назад и все. Пока не срочно, но все же в подвале хотелось бы меню поставить. Чтоб как у людей… )) Тема best-magazine тема такая навороченная, и поставить одно меню….
Алексей, пролейте мне свет. Можно популярней немного? Что значит, назначили в разные theme_location? И еще, в файле футер эта строчка появляется после всех манипуляций, как до меня начинает доходить. Правильно?
Спасибо за интересную статью! Очень подробно и обстоятельно! Автору всех благ!
Спасибо!
Здравствуйте!А как сделать такое меню не в футере, а в хедере? У меня в заголовочной части сайта установлено какое-то оформление,при котором полупрозрачная полоса появляется при наведении мыши.Проблема в том,что мне под этой полосой, в разделе заголовка надо сделать второе меню.