Создание и добавление произвольного меню
В одном из своих предыдущих постов я рассказывал, как зарегистрировать произвольное меню в шаблоне WordPress. Теперь настало время поближе познакомиться с ним и узнать, что оно из себя представляет и какие выполняет функции. Напомню, что произвольным оно называется потому, что в нем можно создавать меню произвольной структуры и в качестве элементов меню можно использовать рубрики, страницы и произвольные ссылки. Таких меню можно сделать как одно, так и несколько.
Если вы уже забыли, то напоминаю, что начать работать с меню можно, выбрав пункт “Меню” в разделе “Внешний вид” административной панели. Будем считать, что у вас уже созданы на сайте рубрики и страницы, а также размещены какие-то записи. Давайте создадим первое произвольное меню и назовем его “Первое меню”. Сделать это можно в специальной панели, вписав соответствующее название меню. Перед созданием каждого нового меню вам будет выдаваться краткая подсказка, которую можно прочитать прямо в этой панели. Создав первое меню, давайте познакомимся с блоками, которые располагаются с левой стороны от панели. Первым по счету идет блок “Области темы”, в нем можно указать, какое именно меню у вас будет основным, если вы используете их несколько.
В следующем блоке “Произвольные ссылки” можно указать в качестве меню произвольную ссылку на какой-нибудь сайт или внутреннюю запись на сайте, задав ей название.
Следующие два блока “Страницы” и “Рубрики” идентичны по своему назначению и позволяют в одно меню добавлять как страницы вашего сайта, так и рубрики.
Давайте зададим элементы нашему первому меню, которое будет состоять из одной страницы, одной рубрики и одной произвольной ссылки. Для этого отметим нам нужные страницы и рубрики в блоках и нажмем кнопку “Добавить в меню”. В блоке ” Произвольные ссылки” укажите адрес сайта или какой-нибудь внутренней записи сайта и также добавьте ее в меню. Когда мы это сделаем, то в панели создания меню появятся серые прямоугольники с названиями нашей страницы, рубрики и произвольной ссылки. Это и есть элементы меню, в которых, если развернуть их, можно задать текст ссылки, атрибут title, а в произвольной ссылке и адрес нужной нам веб-страницы.
Если вас не устраивает порядок расположения элементов меню, то вы можете с легкостью его поменять, перетащив прямоугольники вверх или вниз на нужное вам место. Таким образом, элемент, находящийся выше остальных, будет идти первым в меню.
Но и это еще не все манипуляции, которые можно совершать с элементами меню. Помимо установки очередности пунктов меню, есть возможность задавать родительские и дочерние пункты. Осуществить это можно путем перетаскивания прямоугольников вправо.
Вот, в принципе, и все, наше первое произвольное меню создано. Как видите, удобство и практичность заключается в том, что мы можем выводить в одном меню произвольные ссылки, рубрики и страницы и выбирать именно те, которые нам нужны.
Размещение произвольного меню на сайте
Теперь нужно разместить наше меню на сайте. Его можно разместить двумя способами: с помощью виджета и при помощи специального тега wp_nav_menu();.
Размещение меню при помощи виджета
После того, как мы создали произвольное меню, в панели виджетов у нас появился новый виджет “Произвольное меню”. Размещение его в нужной нам области виджетов не отличается от остальных: просто перетащите виджет в боковую колонку.
В виджете осталось всего лишь задать название произвольное меню и выбрать в выпадающем списке, какое именно произвольное меню надо выводить. Поскольку оно у нас всего одно, поэтому выбираем “Первое меню”.
Размещение произвольного меню при помощи специального тега
Произвольному меню присвоен специальный тег wp_nav_menu();, который можно разместить в любом месте сайта, независимо от того размечена у вас эта область для виджетов или нет. Для этого просто пропишите код в любом удобном для вас месте:
<?php wp_nav_menu(); ?>
Если у вас всего одно произвольное меню, то данный код можно оставить без изменений, однако если у вас более одного меню, то следует задать тегу условие, какое именно меню нужно вывести. Для этого нужно указать имя нужного произвольного меню, например:
<?php wp_nav_menu( array('menu' => 'Первое меню' )); ?>
Как видите, в условии нужно указать имя меню, которое мы присваивали ему при создании. Кстати, то меню, которое у нас выбрано основным в блоке “Области темы”, можно выводить без всяких условий, независимо от того, какое количество у нас произвольных меню.
Создание и добавление произвольного меню: 56 комментариев
жаль я в гамно и не совсем понимаю код=)
Спасибо за информацию. У меня тоже сайт на WordPress я с большим вниманием знакомлюсь со всеми материалами на эту тему. Добавление произвольного меню позволит разнообразить структуру сайта.
Здравствуйте. У меня непонятная проблема- самый последний движок и даже в дефолтной теме после создания страниц и меню с ними – при клике на любую кнопку- Яндекс, такой страницы не существует. ПОЖАЛУЙСТА, мне так необходимо несколько разных меню на разных страницах и ни черта не работает. Что это может быть?
Лана, вы делаете сайт на денвере или уже на хостинге? Возможно где-то допустили ошибку или напортачили с ЧПУ.
Vadimon, спасибо за ответ. Делаю сразу на хостинге,, комп трухлявый, Денвер не устанавливала. Пробую сейчас другой путь – на хосте предустановлен движок WP 3,0. Там, надеюсь есть функция этого меню. Установлю их движок автоматом. но если опять не сработает – просто караул. С ЧПУ – поставила произвольно с нужным значением в постоянных ссылках, как все рекомендуют.
Добрый день! Подскажите, в чем может быть проблема. Сделала меню, как научили. В пункте меню ПРОЕКТЫ еще 3 подменю, так вот в подменю ФИЛЬМЫ 1 статья всего, но выводятся все проекты. Куда занырнуть? Не думаю, что дело в само меню.
Наталия, видимо, так происходит потому, что все ваши статьи находятся в пункте меню “ПРОЕКТЫ”. Распределите ваши статьи в подменю.
Нет, каждая статья в своем подменю. Я перепроверила все. Пункт меню ПРОЕКТЫ и его подменю – это рубрики. В рубриках ПРОЕКТЫ являются родительской рубрикой. Хотя я пробовала и так и эдак. Что-то напутано с рубриками, а что – не пойму.
Доброй ночи! У меня вопрос довольно интересный, поскольку решения я найти нигде не смог.
Смотрите. Делаем меню с родительскими и дочерними рубриками (там смесь страницы + рубрики).
Как на главной странице выводить только родительские рубрики, а в самих подрубриках соответственно только подрубрики конкретной рубрики?
Наверное посредством wp menu не получится сделать, придется вручную делать и выводить произвольные куски кода html в зависимости от страницы.
Михаил, действительно, вопрос у вас интересный, так как я не совсем понял, какое именно меню вы хотите сделать.
А можно ли разместить произвольное меню вместо горизонтального главного меню?
У меня не получается.
Шаблон создан программой Artisteer
Сергей, замените функцию wp_list_categories() в вашем шаблоне, если таковая имеется, на wp_nav_menu(). Еще нужно зарегистрировать это произвольное меню. Программа Artisteer на выходе делает очень примитивные шаблоны для WordPress, которые отличаются отсутствием практически всякого функционала.
Это функции wp_list_categories нет. Есть wp_list_pages
Главное, что без стилей главное меню отображается … … вертикально.
А произвольное меню у меня зарегистрировано.
Все делал так как у вас написано.
Спасибо, кстати, за статью 🙂
Сергей, застилизуйте тогда меню под горизонтальное. Раз у вас в меню wp_list_pages, выводящая страницы, то тогда замените его. Я так и не понял. у вас получилось или нет?
Да, я сделал (сегодня закончил в 3 часа ночи 🙂 )
Но функции не менял. Только сменил стили.
Большое спаcибо вам за ваш сайт и за ваши материалы 🙂
Я хочу поинтересоваться: возможно ли поместить страницу в выпадающее меню, которое отображает рубрики сайта. То есть в главном меню отображаются несколько страниц: Главная, О сайте, Фото, Работы.
Работы в свою очередь раскрываются и показывают рубрики работ: Сайты, Логотипы итд. Необходимо в это меню запихать статичную страницу Фото, чтобы она показывалась наравне с другими рубриками. Версия WP 2.8
Спасибо.
Sergey, очень даже можно. Потому оно и называется произвольным.
Спасибо, огромное. Столько всего пересмотрел. Попробую Ваш вариант. Успехов Вам!!!
Опасаюсь за совместимость плагинов и шаблона – очень много исправлений было сделано (за 2 года)
Vadimon, все дело в том, что версия WP – 2.8
Sergey, а это читали? http://wordpressadmin.ru/tips/navigation-menu/
Все же, рекомендую обновить вам версию WordPress.
Добрый день.Подскажите, пожалуйста, можно ли сделать выпадающее меню таким образом, чтобы родительский пункт меню был не кликабельным (на него нельзя было нажать)? Например:
Фамилии
–Петров
–Сидоров
Фамилии не кликабельный пункт, выпадающие пункты Петров и Сидоров кликабельные.
Заранее спасибо.
Добрый день! В WordPress версия 3.2.1. Решила сделать произвольное меню. Но увы, хотя панель для создания меню очень удобная. Поддерживается одно меню. Все замыкается на стадии выбора элементов и добавления в меню. Начинает грузиться и все… Если раньше выводились страницы в горизонтальную строку под шапкой, то теперь и они пропали. Я новичок, соответственно php не знаю. Лезть в код на авось не хочется. Как создать произвольное меню в моем случае? Спасибо. Очень надеюсь на помощь.
Ольга, с чего вы взяли, что поддерживается только одно меню? И что означает фраза:”Начинает грузиться и все…”?
спасибо, что отвечаете! Тема поддерживает одно меню. Фраза “Начинает грузиться и все…” означает, что процесс не завершается. За полчаса произвольное меню из трех пунктов так и не создалось. Видно, что процесс какой-то идет, но окончания его нет. Возможно, я совершаю какую-то глупейшую ошибку, но следую точно по инструкциям. Обидно, что, судя по видео и публикациям, процесс удивительно прост, но вот замкнуло. Скорее всего ситуация анекдотичная, но что есть, то есть. Спасибо.
Ольга, какая версия WordPress у вас установлена? Попробуйте переустановить движок. В случае с произвольным меню совершенно не важно, сколько меню поддерживает тема, вы сами в теме определяете это количество, будь то функция wp_nav_menu или виджет.
Добрый день! Установлена версия вордпресс 3.2.1. Переустановила, раньше была старая. Хотелось как лучше…
Ольга, ну так что, проблема устранена?
Нет. Записи только в рубриках. Меню как не было так и нет. Плохо, что непонятно теперь, где главная страница.
Добрый день! Самое смешное, на другом блоге в той же версии вордпресс меню без проблем создала за минуту. А тут заклинило. Что делать????
Здравствуйте! Подскажите, пожалуйста, что сделать, чтобы всплывающие подсказки работали в меню? Плагин WordPress Tooltip позволяет вывести их в тексте, а мне нужно в меню. Спасибо.
Извиняюсь, все уже заработало
здравствуйте.
Вот ещё вопрос от чайника. ))
А чем вообще отличаются страницы от рубрик? Вообще зачем нужны страницы? Где их публиковать? Как выводить?
И как сделать чтобы на главной странице выводилась только одна неизменная запись , типа титульного листа сайта?
Все эти ответы на вопросы для чайников, а также многие другие вы можете найти в Кодексе WordPress: http://codex.wordpress.org/
У меня возникла проблема. Появились 2 кнопки главная в меню ? как убрать одну?
Видимо, пункт меню у вас был изначально прописан в коде шаблона. Попробуйте найти его в файле header.php вашего шаблона и удалить его.
Спасибо, попробуем!
Доброго времени суток. Я Вам уже писал. Вопрос по карте сайта. Нашел решение вставкой кода wp_nav_menu. Но вот еще один вопрос: как можно вывести записи рубрики в этом древовидном списке. Спасибо
суть в следующем – создаю меню – главная – о нас – контакты –
создаю следующее а оно появляется между главной – и – о нас.
как их переместить? и почему так?)
По-умолчанию, пункты меню располагаются в алфавитном порядке. Произвольное меню позволяет располагать пункты в произвольном порядке.
Алоха!
Вопрос на засыпку! Есть меню, есть пункт первого уровня и у него подпункты второго уровня. Как сделать так, чтобы подпункты второго уровня становились видными в меню только после перехода на их родительский пункт первого уровня?
То есть перешел в раздел и раскрылся список его подразделов, а не так, чтобы он постоянно был виден изначально.
Это вам надо править код шаблона.
Ну да, тут либо функцию писать, либо искать какой-нибудь плагин…
Кстати плагинов, которые могли бы помочь это осуществить никаких не знаете?
Могу порекомендовать вам эту статью: wphelp_ru/2012/child-categories.htm
Как разместить вновь созданное произвольное меню на странице сайта??
На какой странице вы хотите разместить произвольное меню?
Добрый день!
У меня такая проблема:
Создал произвольное меню (имя topmenu), добавляю в него страницы, добавляется всего 17 шт и все, 18я и дальше уже ни в какую! То есть перетаскиваю скажем к 17и еще 1-2-3 и более, все перетаскивается, но как только нажимаю кнопку сохранить, написано что сохранено успешно но остается опять 17 шт! Пробовал создавать еще 1 меню, добавляю сразу штук 20-30, после сохранения остаются лишь первые 17 шт.
Возможно кто то сталкивался, помогите пожалуйста!
Хочу добавить около 30 шт, и вот застопорился(((
Подскажите, можно перечень рубрик поставить не по алфавиту, а так как хочется?
Не подскажите, как сделать так, чтобы пункт меню был не активен (не являлся ссылкой) если я нахожусь на странице, на которую этот самый пункт указывает? Например, если в меню есть пункты “категория 1″, “категория 2″, “категория 3″ и я перейду на страницу “категория 1″ нужно чтобы этот пункт меню перестал быть ссылкой, а отображался просто как текст.
Помогите решить проблемку:
Создал дополнительное меню (вид на сайте 5-i.ru как 1, 2, 3, 4) и хотел чтобы оно было в том же стиле как и основное, но не могу применить к нему стиль основного, перепробовал разные способы.
Может подскажете, как сделать.
сайт 5-i.ru шаблон:exuberance
Для основного меню в functions.php прописано:
function art_menu_items()
{
global $artThemeSettings;
if (true === $artThemeSettings[‘menu.showHome’] && ‘page’ != get_option(‘show_on_front’))
echo ‘‘.$artThemeSettings[‘menu.topItemBegin’]
. $artThemeSettings[‘menu.homeCaption’] . $artThemeSettings[‘menu.topItemEnd’] . ‘‘;
add_action(‘get_pages’, ‘art_header_page_list_filter’);
add_action(‘wp_list_pages’, ‘art_list_pages_filter’);
wp_list_pages(‘title_li=’);
remove_action(‘wp_list_pages’, ‘art_list_pages_filter’);
remove_action(‘get_pages’, ‘art_header_page_list_filter’);
}
возможно для дополнительного надо прописать что-то подобное….
Кусок нового меню из (header.php)
Подскажите как написать правильно функции для нового меню….
Кусок нового меню из (header.php) к предыдущему комменту
Хотелось бы понять на наглядных примерах, как повышает уровень сайта произвольное меню? Какие дополнительные возможности появляются с его установкой?
Спасибо! Ваш совет заменить wp_list_categories на wp_nav_menu сработал в моей теме на горизонтальном меню. Все работает!
Здравствуйте!
Искренне надеюсь Вы сможете помочь… Возникла необходимость поместить “Архивы” не в сайдбаре, а в меню… Но каким образом его туда перенести, ответа на этот вопрос не нашел ни в гугле, ни у знакомых, которые точно так, как я занимаются “самообразованием”.
Заранее благодарен за любую помощь.
Хорошая полезная темка! Только не определяет область!
<ul class="art-menu">
<?php wp_nav_menu(); ?>
</ul>>
В этой области было прописано стандартное меню!Я его заменил кодом а в списке областей не появляется!
Помогите пожалуйста!