Создание и управление меню в WordPress 3.0

Пользовательские меню в WordPress 3.0 вероятно одна из самых лучших функций данного релиза.

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

Однако прежде всего ваша тема должна поддерживать эту функцию. Подключить ее довольно просто. Если вы не намерены заказывать сайт под ключ, то придется немного познакомится с редакцией php-файлов. Хотя на данный момент в этом нет ничего страшного, и многие начинающие пользователи без труда это делают. Достаточно зайти во вкладку Внешний вид -> Редактор и выбрать нужный файл для редактирования, а затем сохранить его (при этом файл должен быть перезаписываемый, если же нет, WordPress попросит изменить права доступа к файлу, что нужно будет сделать через FTP или Менеджер файлов на хостинге).

В файле functions.php необходимо добавить код

if (function_exists('add_theme_support')) {
 add_theme_support('menus');
}

Код нужно вставить в конце перед закрывающей скобкой ?>.

Перейдя на вкладку Внешний вид -> Меню, вы увидите такой интерфейс как на картинке (нажмите на нее, чтобы увеличить). Вам необходимо добавить новое меню, у меня в примере это меню «top».

Далее мы добавляем в него необходимые пункты, достаточно отметить их галочками и нажать кнопку «Добавить в меню». На рисунке выше вы также можете видеть поля для добавления произвольных ссылок.

Получаем вот такой список.

Вы можете также создать выпадающее меню, для этого некоторые пункты из списка вы можете сделать дочерними, достаточно захватить пункт меню мышкой и перетянуть его под какой-либо другой пункт. Обратите внимание, что если рубрики или страницы уже разделены на дочерние и родительские при их создании, это не повлияет на меню, и выпадающие рубрики сами по себе не появятся, их нужно сгруппировать и упорядочить в настройках самого меню как на рисунке. Соответсвенно при этом в вашей теме должен быть подключен java-скрипт для плавно выпадающих меню и/или заданы их стили. В теме Twenty Ten, которая поставляется с дистрибутивом WordPress по-умолчанию, выпадающие меню уже есть. Вы можете скопировать стили из этой темы, и затем подогнать их под себя (подробнее о создании выпадающих меню я расскажу в следующих публикациях).

Затем, чтобы отобразить меню на сайте, в файлы темы (обычно это header.php или sidebar.php) нужно добавить следующий код, где top – название вашего меню.

<?php wp_nav_menu('menu=top'); ?>

Также вы можете задать свой стиль для меню, при этом код для вставки будет выглядеть таким образом (этот же стиль, menu-header, используется в теме Twenty Ten).

wp_nav_menu('menu=top&menu_class=menu-header');

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


Отзывов (42) на «Создание и управление меню в WordPress 3.0»


gonyaz пишет:

сентября 6, 2010 в 21:40

как поставить на денвер

Анастасия пишет:

сентября 6, 2010 в 21:41

Сам WordPress или возникают проблемы с меню?

Марина пишет:

сентября 12, 2010 в 08:53

А у меня вместо вкладки «Внешний вид» вкладка «Дизайн», и там есть Темы, Виджеты, Редактор и Добавление новой темы, а Меню нет

Анастасия пишет:

сентября 12, 2010 в 22:38

У вас версия 3.0? Попробуйте подключить меню сначала в functions.php, как указано в начале статьи.

videomob пишет:

сентября 15, 2010 в 14:50

Спасибо за статью. Создал новую тему при помощи Artisteer 2, но никак не получается прикрутить это меню. После добавления кода в function.php вот такое сообщение: «Ваша тема поддерживает 0 меню. Выберите, какое меню выводить в каждом месте.» И нет опций для отображения этого меню, где его показывать.( Можете описать подробней, куда вставлять коды, если шаблон сделан при помощи Artisteer 2?

Спасибо.

Анастасия пишет:

сентября 16, 2010 в 16:49

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

videomob пишет:

сентября 17, 2010 в 09:26

Спасибо за ответ. Все получилось)))

eTradePages пишет:

октября 5, 2010 в 23:56

Спасибо разобрался с WordPress 3.0

Артем (Одесса) пишет:

октября 21, 2010 в 00:16

А куда именно в header.php вставлять код , у меня не появляется меню

Takohashi пишет:

ноября 27, 2010 в 20:20

А как сделать, чтобы дочерние пункты меню были свёрнуты?

То есть у меня например в меню 10 пунктов и в каждом 10 подпунктов. Получается, что все они видны. Мне надо, чтобы было видно только 10 пунктов. Когда я захожу в один из пунктов меню, показываются все вложенные элементы.

Как такое реализовать? Мож хотя бы плагином каким?

Анастасия пишет:

декабря 1, 2010 в 01:36

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

Если нужно, чтобы открывались подпункты на новой странице читайте здесь wphelp.ru/2008/list-sub-pages.htm

lighto пишет:

декабря 1, 2010 в 09:36

а не проше делать меню не средствами вордпресс? и функциональней и красивей... полазил в менюшке от движка неудобная и страшноватая((

Анастасия пишет:

декабря 1, 2010 в 22:15

Что значит страшноватая? В админке или на сайте? Вы же оформляете ее стилями. На самом деле она очень удобная, если не лезть каждый раз в файлы темы, чтобы добавить нужный пункт или ссылку.

Takohashi пишет:

декабря 1, 2010 в 22:27

>Если нужно, чтобы открывались подпункты на новой странице читайте здесь

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

Всё-таки да, понимаю, что Вордпресс пока что чисто блоговый движок. Хотел вот сайт перенести с Джумлы на Вордпресс, дабы не ставить лишние плагины для комментов, красивых ЧПУ и тд, так как в ВП это есть изкоробки. Однако ж столкнулся с тем, что если не эти, то придётся ставить другие плагины — плагин для страниц, чтобы они оканчивались на .html, также как и записи, плагин для меню, чтобы подпункты были свёрнуты и тд.

Теперь после этого думаю — а стоит ли вообще переносить свой сайт на ВП? думаю, что смысла в этом нет.

lighto пишет:

декабря 2, 2010 в 04:47

ну jquery+css куда лучше тоньше красивей и тд) можно сделать а на вордпрессе так невыйдет так же красиво и постоянно во всех браузерах)

Семен пишет:

апреля 11, 2011 в 14:10

Добрый день! Помогите пожалуйста!!!

Тружусь над меню в шапке, на dom-kino.com.ua

В втором меню не получается делать изменения, а именно: добавлять / убирать рубрики...

Выдает:"Fatal error: Maximum execution time of 30 seconds exceeded in /home/h23925/data/www/dom-kino.com.ua/wp-includes/post.php on line 1608"

Может проблема в количестве рубрик но их нужно достаточно много.

На мой взгляд я достиг какова то придела, с темой вряд ли проблема так как меню чисто «радоне» wordpress...

В чем проблема, подскажите???

Буду очень благодарен!

Анастасия пишет:

апреля 21, 2011 в 11:04

Проблема в том, что на выполнение запроса не хватает времени, выделенного хостингом, 30 секунд. Как это ускорить при большом количестве рубрик я не знаю, разве что попросить у хостера увеличить время выполнения скриптов до 60 секунд, или попробовать это самостоятельно исправить в файле php.ini, если к нему есть доступ.

Sun пишет:

мая 5, 2011 в 19:38

не знаю как в других версиях но на WP 3.1.2 похоже работает без изменений файла function.php

Анастасия пишет:

мая 7, 2011 в 21:34

Sun, зависит от темы.

Семен пишет:

мая 10, 2011 в 16:52

спасибо, розобрались с хостингом!

Алексей пишет:

июня 9, 2011 в 09:10

очень приятно, что есть такие красивые и умные девушки :)

Наталья пишет:

июня 16, 2011 в 16:50

Добрый день! У вас у единственной на сайте представлено оптимальное решение создания меню. Единственно, у меня вопросик. Я еще совсем новичок, и у меня возникла такая же проблема как у videomob, т.е. в админке тоже сообщение: «Ваша тема поддерживает 0 меню. Выберите, какое меню выводить в каждом месте.» Я создала уже целых два меню, но все таже ситуация. И мне не понятно в какую именно часть файла header.php вставлять приведенные вами коды меню и стиля? Заранее спасибо!

Анастасия пишет:

июня 17, 2011 в 11:17

В header.php в том месте. где хотите видеть меню, можете заменить стандартное меню, если оно есть в теме, обычно там либо есть стиль, который называется menu, или что-то типа wp_list_pages или wp_list_cats.

В functions.php еще нужно будет вставить код.

Влад пишет:

июля 21, 2011 в 14:58

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

Столкнулся с такой проблемой в меню более 130 пунктов :), ошибки не выдает но Вордпресс или хостинг начинают глючить(то не добавляет, то не находит), при добавлении разделов в списке «ВСЕ» разделы не показываются, только через «Поиск» можно найти и добавить.

Влад пишет:

июля 23, 2011 в 10:57

Решил. Меню (во всяком случае на моем хостинге) работает гдето до 80 пунктов. Просто создаем несколько меню :) причем можно без заголовков, они тогда выглядят вобще как одно.

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

По поводу много для меню 130 пунктов: первый уровень не больше 10 остальное все свернуто. Так что это обычный каталог товаров. Юзаю Вордпресс как CMS – вполне устаривает, особенно когда нужно быстро и бюджеты небольшие.

Александр пишет:

августа 21, 2011 в 20:40

Спасибо Вам огромное!!! Просто «чайник» я. Ваша статья, а точнее картинки натолкнули на очень важную мысль. Проверил у себя на сайте, всё работает. УРА!!! Видимо важно оказаться в нужное время в нужном месте. Ещё раз спасибо!

Елена пишет:

сентября 23, 2011 в 16:26

Спасибо. Как-то подозрительно легко всё сделала )) В сайдбар вместо стандартного блока навигации поставила пользовательское меню. И сразу отпал вопрос, как НЕ выводить ссылки на все страницы блога.

Анастасия пишет:

сентября 28, 2011 в 20:07

Елена, просто при добавлении пунктов меню выберите не все страницы, а только нужные.

Kostya пишет:

октября 1, 2011 в 11:31

Помогите пожалуйста, у меня меню выпадает выше чем нужно и я ничего не могу с этим поделать. Тема inove.

Анастасия пишет:

октября 4, 2011 в 18:37

Kostya, да, странно, даже замыслом дизайнера это не назовешь. Нужно разбираться в стилях, тестировать, сразу не скажешь какая проблема.

Александр пишет:

октября 4, 2011 в 22:27

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

Фамилии

--Петров

--Сидоров

Фамилии не кликабельный пункт, выпадающие пункты Петров и Сидоров кликабельные.

Заранее спасибо.

Анастасия пишет:

октября 22, 2011 в 19:01

Александр, с помощью пользовательских меню нельзя. Но можно с помощью плагина wordpress.org/extend/plug...rent-categories/

VRS пишет:

ноября 1, 2011 в 01:05

ООО, спасибо ОГРОМНОЕ за статью!

Все подробно и наглядно, все настроила с первого раза, теперь можно идти спать :)

Андрей пишет:

декабря 6, 2011 в 02:02

Здравствуйте, Анастасия! Спасибо за пост!

У меня такой вопрос — в старом меню была ссылка на главную, домашнюю страницу, где отображались материалы всех категорий в хронологическом порядке. Я бы хотел оставить ссылку на главную и в новом меню, у меня там карусель просто, на главной)

В админке при создании нового меню такой опции не было. Можно ли это сделать? Спасибо!

Анастасия пишет:

декабря 9, 2011 в 19:29

Андрей, просто создаете произвольную ссылку (это первая секция в настройке меню, перед рубриками и страницами), пишете в качестве ссылки — главную для своего блога, и называете этот пункт меню как-то, например, Главная.

Сергей пишет:

декабря 14, 2011 в 09:03

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

Анастасия пишет:

декабря 17, 2011 в 02:13

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

Сергей пишет:

декабря 19, 2011 в 06:28

Анастасия, поддерживается пользовательское меню, выпадающее меню горизонтальное. Пользовательское меню двухуровневое, но выпадающим оно не делается, а как обычно, отображается иерархия и всё. Вот сайт okoneshnikovo-rcio.omskedu.ru, вертикальное меню слева.

Анастасия пишет:

декабря 19, 2011 в 21:41

Сергей — выпадающее меню обычно делается только горизонтальное. Но Вы можете установить плагин типа Collapse Categories.

Полина пишет:

января 18, 2012 в 13:57

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

Удачи!

Буду Вашим постоянным гостем :)

Полина пишет:

января 18, 2012 в 14:09

Анастасия, извините, я в комменте написала неправильно имя! Я ведь только впервые зашла к Вам на сайт, не поняла, кто автор, простите. Вы мне сразу помогли, я от радости и поспешила поблагодарить :)

Анастасия пишет:

января 23, 2012 в 16:31

Полина, не страшно :) Рада была помочь.

Ваш отзыв


© 2007-2011 Уроки WordPress
Дизайн WpHelp.ru