Создание и добавление произвольного меню

Создание и добавление произвольного меню

5/5 - (1 голос)

В одном из своих предыдущих постов я рассказывал, как зарегистрировать произвольное меню в шаблоне WordPress. Теперь настало время поближе познакомиться с ним и узнать, что оно из себя представляет и какие выполняет функции. Напомню, что произвольным оно называется потому, что в нем можно создавать меню произвольной структуры и в качестве элементов меню можно использовать рубрики, страницы и произвольные ссылки. Таких меню можно сделать как одно, так и несколько.

Если вы уже забыли, то напоминаю, что начать работать с меню можно, выбрав пункт “Меню” в разделе “Внешний вид” административной панели. Будем считать, что у вас уже созданы на сайте рубрики и страницы, а также размещены какие-то записи. Давайте создадим первое произвольное меню и назовем его “Первое меню”. Сделать это можно в специальной панели, вписав соответствующее название меню. Перед созданием каждого нового меню вам будет выдаваться краткая подсказка, которую можно прочитать прямо в этой панели. Создав первое меню, давайте познакомимся с блоками, которые располагаются с левой стороны от панели. Первым по счету идет блок “Области темы”, в нем можно указать, какое именно меню у вас будет основным, если вы используете их несколько.

В следующем блоке “Произвольные ссылки” можно указать в качестве меню произвольную ссылку на какой-нибудь сайт или внутреннюю запись на сайте, задав ей название.

Следующие два блока “Страницы” и “Рубрики” идентичны по своему назначению и позволяют в одно меню добавлять как страницы вашего сайта, так и рубрики.

Давайте зададим элементы нашему первому меню, которое будет состоять из одной страницы, одной рубрики и одной произвольной ссылки. Для этого отметим нам нужные страницы и рубрики в блоках и нажмем кнопку “Добавить в меню”. В блоке ” Произвольные ссылки” укажите адрес сайта или какой-нибудь внутренней записи сайта и также добавьте ее в меню. Когда мы это сделаем, то в панели создания меню появятся серые прямоугольники с названиями нашей страницы, рубрики и произвольной ссылки. Это и есть элементы меню, в которых, если развернуть их, можно задать текст ссылки, атрибут title, а в произвольной ссылке и адрес нужной нам веб-страницы.

Если вас не устраивает порядок расположения элементов меню, то вы можете с легкостью его поменять, перетащив прямоугольники вверх или вниз на нужное вам место. Таким образом, элемент, находящийся выше остальных, будет идти первым в меню.

Но и это еще не все манипуляции, которые можно совершать с элементами  меню. Помимо установки очередности пунктов меню, есть возможность задавать родительские и дочерние пункты. Осуществить это можно путем перетаскивания прямоугольников вправо.

Вот, в принципе, и все, наше первое произвольное меню создано. Как видите, удобство и практичность заключается в том, что мы можем выводить в одном меню произвольные ссылки, рубрики и  страницы и выбирать именно те, которые нам нужны.

Размещение произвольного меню на сайте

Теперь нужно разместить наше меню на сайте. Его можно разместить двумя способами: с помощью виджета и при помощи специального тега wp_nav_menu();.

Размещение меню при помощи виджета

После того, как мы создали произвольное меню, в панели виджетов у нас появился новый виджет “Произвольное меню”. Размещение его в нужной нам области виджетов не отличается от остальных: просто перетащите виджет в боковую колонку.

В виджете осталось всего лишь задать название произвольное меню и выбрать в выпадающем списке, какое именно произвольное меню надо выводить. Поскольку оно у нас всего одно, поэтому выбираем “Первое меню”.

Размещение произвольного меню при помощи специального тега

Произвольному меню присвоен специальный тег wp_nav_menu();, который можно разместить в любом месте сайта, независимо от того размечена у вас эта область для виджетов или нет. Для этого просто пропишите код в любом удобном для вас месте:

<?php wp_nav_menu(); ?>

Если у вас всего одно произвольное меню, то данный код можно оставить без изменений, однако если у вас более одного меню, то следует задать тегу условие, какое именно меню нужно вывести. Для этого нужно указать имя нужного произвольного меню, например:

<?php wp_nav_menu( array('menu' => 'Первое меню' )); ?>

Как видите, в условии нужно указать имя меню, которое мы присваивали ему при создании. Кстати, то меню, которое у нас выбрано основным в блоке “Области темы”, можно выводить без всяких условий, независимо от того, какое количество у нас произвольных меню.

Создание и добавление произвольного меню: 56 комментариев

  1. Спасибо за информацию. У меня тоже сайт на WordPress я с большим вниманием знакомлюсь со всеми материалами на эту тему. Добавление произвольного меню позволит разнообразить структуру сайта.

  2. Здравствуйте. У меня непонятная проблема- самый последний движок и даже в дефолтной теме после создания страниц и меню с ними – при клике на любую кнопку- Яндекс, такой страницы не существует. ПОЖАЛУЙСТА, мне так необходимо несколько разных меню на разных страницах и ни черта не работает. Что это может быть?

    1. Лана, вы делаете сайт на денвере или уже на хостинге? Возможно где-то допустили ошибку или напортачили с ЧПУ.

  3. Vadimon, спасибо за ответ. Делаю сразу на хостинге,, комп трухлявый, Денвер не устанавливала. Пробую сейчас другой путь – на хосте предустановлен движок WP 3,0. Там, надеюсь есть функция этого меню. Установлю их движок автоматом. но если опять не сработает – просто караул. С ЧПУ – поставила произвольно с нужным значением в постоянных ссылках, как все рекомендуют.

  4. Добрый день! Подскажите, в чем может быть проблема. Сделала меню, как научили. В пункте меню ПРОЕКТЫ еще 3 подменю, так вот в подменю ФИЛЬМЫ 1 статья всего, но выводятся все проекты. Куда занырнуть? Не думаю, что дело в само меню.

    1. Наталия, видимо, так происходит потому, что все ваши статьи находятся в пункте меню “ПРОЕКТЫ”. Распределите ваши статьи в подменю.

  5. Нет, каждая статья в своем подменю. Я перепроверила все. Пункт меню ПРОЕКТЫ и его подменю – это рубрики. В рубриках ПРОЕКТЫ являются родительской рубрикой. Хотя я пробовала и так и эдак. Что-то напутано с рубриками, а что – не пойму.

  6. Доброй ночи! У меня вопрос довольно интересный, поскольку решения я найти нигде не смог.

    Смотрите. Делаем меню с родительскими и дочерними рубриками (там смесь страницы + рубрики).

    Как на главной странице выводить только родительские рубрики, а в самих подрубриках соответственно только подрубрики конкретной рубрики?

    Наверное посредством wp menu не получится сделать, придется вручную делать и выводить произвольные куски кода html в зависимости от страницы.

    1. Михаил, действительно, вопрос у вас интересный, так как я не совсем понял, какое именно меню вы хотите сделать.

  7. А можно ли разместить произвольное меню вместо горизонтального главного меню?
    У меня не получается.
    Шаблон создан программой Artisteer

    1. Сергей, замените функцию wp_list_categories() в вашем шаблоне, если таковая имеется, на wp_nav_menu(). Еще нужно зарегистрировать это произвольное меню. Программа Artisteer на выходе делает очень примитивные шаблоны для WordPress, которые отличаются отсутствием практически всякого функционала.

  8. Это функции wp_list_categories нет. Есть wp_list_pages
    Главное, что без стилей главное меню отображается … … вертикально.
    А произвольное меню у меня зарегистрировано.
    Все делал так как у вас написано.
    Спасибо, кстати, за статью 🙂

    1. Сергей, застилизуйте тогда меню под горизонтальное. Раз у вас в меню wp_list_pages, выводящая страницы, то тогда замените его. Я так и не понял. у вас получилось или нет?

  9. Да, я сделал (сегодня закончил в 3 часа ночи 🙂 )
    Но функции не менял. Только сменил стили.
    Большое спаcибо вам за ваш сайт и за ваши материалы 🙂

  10. Я хочу поинтересоваться: возможно ли поместить страницу в выпадающее меню, которое отображает рубрики сайта. То есть в главном меню отображаются несколько страниц: Главная, О сайте, Фото, Работы.
    Работы в свою очередь раскрываются и показывают рубрики работ: Сайты, Логотипы итд. Необходимо в это меню запихать статичную страницу Фото, чтобы она показывалась наравне с другими рубриками. Версия WP 2.8
    Спасибо.

    1. Спасибо, огромное. Столько всего пересмотрел. Попробую Ваш вариант. Успехов Вам!!!

    2. Опасаюсь за совместимость плагинов и шаблона – очень много исправлений было сделано (за 2 года)

  11. Добрый день.Подскажите, пожалуйста, можно ли сделать выпадающее меню таким образом, чтобы родительский пункт меню был не кликабельным (на него нельзя было нажать)? Например:
    Фамилии
    –Петров
    –Сидоров
    Фамилии не кликабельный пункт, выпадающие пункты Петров и Сидоров кликабельные.
    Заранее спасибо.

  12. Добрый день! В WordPress версия 3.2.1. Решила сделать произвольное меню. Но увы, хотя панель для создания меню очень удобная. Поддерживается одно меню. Все замыкается на стадии выбора элементов и добавления в меню. Начинает грузиться и все… Если раньше выводились страницы в горизонтальную строку под шапкой, то теперь и они пропали. Я новичок, соответственно php не знаю. Лезть в код на авось не хочется. Как создать произвольное меню в моем случае? Спасибо. Очень надеюсь на помощь.

  13. Ольга, с чего вы взяли, что поддерживается только одно меню? И что означает фраза:”Начинает грузиться и все…”?

  14. спасибо, что отвечаете! Тема поддерживает одно меню. Фраза “Начинает грузиться и все…” означает, что процесс не завершается. За полчаса произвольное меню из трех пунктов так и не создалось. Видно, что процесс какой-то идет, но окончания его нет. Возможно, я совершаю какую-то глупейшую ошибку, но следую точно по инструкциям. Обидно, что, судя по видео и публикациям, процесс удивительно прост, но вот замкнуло. Скорее всего ситуация анекдотичная, но что есть, то есть. Спасибо.

    1. Ольга, какая версия WordPress у вас установлена? Попробуйте переустановить движок. В случае с произвольным меню совершенно не важно, сколько меню поддерживает тема, вы сами в теме определяете это количество, будь то функция wp_nav_menu или виджет.

  15. Добрый день! Установлена версия вордпресс 3.2.1. Переустановила, раньше была старая. Хотелось как лучше…

  16. Нет. Записи только в рубриках. Меню как не было так и нет. Плохо, что непонятно теперь, где главная страница.

  17. Добрый день! Самое смешное, на другом блоге в той же версии вордпресс меню без проблем создала за минуту. А тут заклинило. Что делать????

  18. Здравствуйте! Подскажите, пожалуйста, что сделать, чтобы всплывающие подсказки работали в меню? Плагин WordPress Tooltip позволяет вывести их в тексте, а мне нужно в меню. Спасибо.

  19. здравствуйте.
    Вот ещё вопрос от чайника. ))
    А чем вообще отличаются страницы от рубрик? Вообще зачем нужны страницы? Где их публиковать? Как выводить?
    И как сделать чтобы на главной странице выводилась только одна неизменная запись , типа титульного листа сайта?

  20. У меня возникла проблема. Появились 2 кнопки главная в меню ? как убрать одну?

  21. Видимо, пункт меню у вас был изначально прописан в коде шаблона. Попробуйте найти его в файле header.php вашего шаблона и удалить его.

  22. Доброго времени суток. Я Вам уже писал. Вопрос по карте сайта. Нашел решение вставкой кода wp_nav_menu. Но вот еще один вопрос: как можно вывести записи рубрики в этом древовидном списке. Спасибо

  23. суть в следующем – создаю меню – главная – о нас – контакты –
    создаю следующее а оно появляется между главной – и – о нас.
    как их переместить? и почему так?)

  24. По-умолчанию, пункты меню располагаются в алфавитном порядке. Произвольное меню позволяет располагать пункты в произвольном порядке.

  25. Алоха!
    Вопрос на засыпку! Есть меню, есть пункт первого уровня и у него подпункты второго уровня. Как сделать так, чтобы подпункты второго уровня становились видными в меню только после перехода на их родительский пункт первого уровня?
    То есть перешел в раздел и раскрылся список его подразделов, а не так, чтобы он постоянно был виден изначально.

    1. Ну да, тут либо функцию писать, либо искать какой-нибудь плагин…
      Кстати плагинов, которые могли бы помочь это осуществить никаких не знаете?

  26. Как разместить вновь созданное произвольное меню на странице сайта??

  27. Добрый день!
    У меня такая проблема:
    Создал произвольное меню (имя topmenu), добавляю в него страницы, добавляется всего 17 шт и все, 18я и дальше уже ни в какую! То есть перетаскиваю скажем к 17и еще 1-2-3 и более, все перетаскивается, но как только нажимаю кнопку сохранить, написано что сохранено успешно но остается опять 17 шт! Пробовал создавать еще 1 меню, добавляю сразу штук 20-30, после сохранения остаются лишь первые 17 шт.
    Возможно кто то сталкивался, помогите пожалуйста!
    Хочу добавить около 30 шт, и вот застопорился(((

  28. Подскажите, можно перечень рубрик поставить не по алфавиту, а так как хочется?

  29. Не подскажите, как сделать так, чтобы пункт меню был не активен (не являлся ссылкой) если я нахожусь на странице, на которую этот самый пункт указывает? Например, если в меню есть пункты “категория 1″, “категория 2″, “категория 3″ и я перейду на страницу “категория 1″ нужно чтобы этот пункт меню перестал быть ссылкой, а отображался просто как текст.

  30. Помогите решить проблемку:
    Создал дополнительное меню (вид на сайте 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)

    Подскажите как написать правильно функции для нового меню….

  31. Хотелось бы понять на наглядных примерах, как повышает уровень сайта произвольное меню? Какие дополнительные возможности появляются с его установкой?

  32. Спасибо! Ваш совет заменить wp_list_categories на wp_nav_menu сработал в моей теме на горизонтальном меню. Все работает!

  33. Здравствуйте!
    Искренне надеюсь Вы сможете помочь… Возникла необходимость поместить “Архивы” не в сайдбаре, а в меню… Но каким образом его туда перенести, ответа на этот вопрос не нашел ни в гугле, ни у знакомых, которые точно так, как я занимаются “самообразованием”.
    Заранее благодарен за любую помощь.

  34. Хорошая полезная темка! Только не определяет область!

    <ul class="art-menu">
    <?php wp_nav_menu(); ?>
    </ul>

    В этой области было прописано стандартное меню!Я его заменил кодом а в списке областей не появляется!
    Помогите пожалуйста!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *