Создание и управление меню в 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');
Очевидно, что можно создавать безграничное множество таких меню, делать любые подшивки контента на сайте и любое оформление для них.
Отзывов (60) на «Создание и управление меню в WordPress 3.0»
А у меня вместо вкладки «Внешний вид» вкладка «Дизайн», и там есть Темы, Виджеты, Редактор и Добавление новой темы, а Меню нет
У вас версия 3.0? Попробуйте подключить меню сначала в functions.php, как указано в начале статьи.
Спасибо за статью. Создал новую тему при помощи Artisteer 2, но никак не получается прикрутить это меню. После добавления кода в function.php вот такое сообщение: «Ваша тема поддерживает 0 меню. Выберите, какое меню выводить в каждом месте.» И нет опций для отображения этого меню, где его показывать.( Можете описать подробней, куда вставлять коды, если шаблон сделан при помощи Artisteer 2?
Спасибо.
Вам нужно создать хотя бы одно меню, когда заходите в этот раздел. Затем его можно будет поместить в виджет, или добавить его с помощью кода в другое место в шаблоне.
А куда именно в header.php вставлять код , у меня не появляется меню
А как сделать, чтобы дочерние пункты меню были свёрнуты?
То есть у меня например в меню 10 пунктов и в каждом 10 подпунктов. Получается, что все они видны. Мне надо, чтобы было видно только 10 пунктов. Когда я захожу в один из пунктов меню, показываются все вложенные элементы.
Как такое реализовать? Мож хотя бы плагином каким?
Если имеется в виду именно пользовательское меню, можно сделать выпадающий список, для этого подпункты в меню перетягиваются мышкой под главный пункт, а потом это все оформляется в стилях.
Если нужно, чтобы открывались подпункты на новой странице читайте здесь
а не проше делать меню не средствами вордпресс? и функциональней и красивей... полазил в менюшке от движка неудобная и страшноватая((
Что значит страшноватая? В админке или на сайте? Вы же оформляете ее стилями. На самом деле она очень удобная, если не лезть каждый раз в файлы темы, чтобы добавить нужный пункт или ссылку.
>Если нужно, чтобы открывались подпункты на новой странице читайте здесь
Спасибо, это вроде то, что мне и нужно. Но по всей логике вещей эта функция должна быть в базовой комплектации изначально.
Всё-таки да, понимаю, что Вордпресс пока что чисто блоговый движок. Хотел вот сайт перенести с Джумлы на Вордпресс, дабы не ставить лишние плагины для комментов, красивых ЧПУ и тд, так как в ВП это есть изкоробки. Однако ж столкнулся с тем, что если не эти, то придётся ставить другие плагины — плагин для страниц, чтобы они оканчивались на .html, также как и записи, плагин для меню, чтобы подпункты были свёрнуты и тд.
Теперь после этого думаю — а стоит ли вообще переносить свой сайт на ВП? думаю, что смысла в этом нет.
ну jquery+css куда лучше тоньше красивей и тд) можно сделать а на вордпрессе так невыйдет так же красиво и постоянно во всех браузерах)
Добрый день! Помогите пожалуйста!!!
Тружусь над меню в шапке, на 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...
В чем проблема, подскажите???
Буду очень благодарен!
Проблема в том, что на выполнение запроса не хватает времени, выделенного хостингом, 30 секунд. Как это ускорить при большом количестве рубрик я не знаю, разве что попросить у хостера увеличить время выполнения скриптов до 60 секунд, или попробовать это самостоятельно исправить в файле php.ini, если к нему есть доступ.
не знаю как в других версиях но на WP 3.1.2 похоже работает без изменений файла function.php
Добрый день! У вас у единственной на сайте представлено оптимальное решение создания меню. Единственно, у меня вопросик. Я еще совсем новичок, и у меня возникла такая же проблема как у videomob, т.е. в админке тоже сообщение: «Ваша тема поддерживает 0 меню. Выберите, какое меню выводить в каждом месте.» Я создала уже целых два меню, но все таже ситуация. И мне не понятно в какую именно часть файла header.php вставлять приведенные вами коды меню и стиля? Заранее спасибо!
В header.php в том месте. где хотите видеть меню, можете заменить стандартное меню, если оно есть в теме, обычно там либо есть стиль, который называется menu, или что-то типа wp_list_pages или wp_list_cats.
В functions.php еще нужно будет вставить код.
Подскажите где храниться меню, что бы можно было залить в виде текста, из файла, а потом уже можно подвигать выставляя уровни меню или меняя порядок пунктов.
Столкнулся с такой проблемой в меню более 130 пунктов :), ошибки не выдает но Вордпресс или хостинг начинают глючить(то не добавляет, то не находит), при добавлении разделов в списке «ВСЕ» разделы не показываются, только через «Поиск» можно найти и добавить.
Решил. Меню (во всяком случае на моем хостинге) работает гдето до 80 пунктов. Просто создаем несколько меню :) причем можно без заголовков, они тогда выглядят вобще как одно.
Пробовал еще плагин, также визуально сортирующий рубрики, но в темах сделаных Artisteer вывод рубрик сделан не стандартно и плагин не работает.
По поводу много для меню 130 пунктов: первый уровень не больше 10 остальное все свернуто. Так что это обычный каталог товаров. Юзаю Вордпресс как CMS – вполне устаривает, особенно когда нужно быстро и бюджеты небольшие.
Спасибо Вам огромное!!! Просто «чайник» я. Ваша статья, а точнее картинки натолкнули на очень важную мысль. Проверил у себя на сайте, всё работает. УРА!!! Видимо важно оказаться в нужное время в нужном месте. Ещё раз спасибо!
Спасибо. Как-то подозрительно легко всё сделала )) В сайдбар вместо стандартного блока навигации поставила пользовательское меню. И сразу отпал вопрос, как НЕ выводить ссылки на все страницы блога.
Елена, просто при добавлении пунктов меню выберите не все страницы, а только нужные.
Помогите пожалуйста, у меня меню выпадает выше чем нужно и я ничего не могу с этим поделать. Тема inove.
Kostya, да, странно, даже замыслом дизайнера это не назовешь. Нужно разбираться в стилях, тестировать, сразу не скажешь какая проблема.
Добрый день.Подскажите, пожалуйста, можно ли сделать выпадающее меню таким образом, чтобы родительский пункт меню был не кликабельным (на него нельзя было нажать)? Например:
Фамилии
--Петров
--Сидоров
Фамилии не кликабельный пункт, выпадающие пункты Петров и Сидоров кликабельные.
Заранее спасибо.
Александр, с помощью пользовательских меню нельзя. Но можно с помощью плагина
ООО, спасибо ОГРОМНОЕ за статью!
Все подробно и наглядно, все настроила с первого раза, теперь можно идти спать :)
Здравствуйте, Анастасия! Спасибо за пост!
У меня такой вопрос — в старом меню была ссылка на главную, домашнюю страницу, где отображались материалы всех категорий в хронологическом порядке. Я бы хотел оставить ссылку на главную и в новом меню, у меня там карусель просто, на главной)
В админке при создании нового меню такой опции не было. Можно ли это сделать? Спасибо!
Андрей, просто создаете произвольную ссылку (это первая секция в настройке меню, перед рубриками и страницами), пишете в качестве ссылки — главную для своего блога, и называете этот пункт меню как-то, например, Главная.
Здравствуйте уважаемый админ сайта. Хотелось бы узнать как сделать выпадающими дочерние рубрики из главных в меню, буду очень признателей если напишите как или дадите ссылку на источник.
Сергей, если тема поддерживает выпадающие меню, и есть поддержка пользовательских меню — просто заходите во Внешний вид — Меню, добавляйте пунткы меню всех уровней, они выстроятся в один ряд, потом перетаскиваете нужные пункты один под другой сдвигая вправо.
Анастасия, поддерживается пользовательское меню, выпадающее меню горизонтальное. Пользовательское меню двухуровневое, но выпадающим оно не делается, а как обычно, отображается иерархия и всё. Вот сайт , вертикальное меню слева.
Сергей — выпадающее меню обычно делается только горизонтальное. Но Вы можете установить плагин типа Collapse Categories.
Сергей, благодаря Вашей статье, мне наконец-то удалось разобраться с тем, как управиться с меню. Я нашла нужный код, заменила и теперь меню такое, как мне надо, а не просто случайно выводимые страницы. Премного благодарна.
Удачи!
Буду Вашим постоянным гостем :)
Анастасия, извините, я в комменте написала неправильно имя! Я ведь только впервые зашла к Вам на сайт, не поняла, кто автор, простите. Вы мне сразу помогли, я от радости и поспешила поблагодарить :)
Анастасия, я вставляю код в необходимое мне место на сайте, но у меня вместо выпадающего меню появляются все страницы друг за другом...что делать?
Спасибо!
Анастасия, извините что не в тему, подскажите как в WP 3.0 Twenty Ten сделать хедер (картинку под названием) кликабельным?
Здравствуйте! Подскажите, пожалуйста, у меня в меню только 4 странички, пятую не могу вставить. Через дизайн, в меню стоит 5 страничек, но выводятся только 4. Как быть, подскажите, пожалуйста! Заранее, спасибо!
Добрый день!
подскажите а сколько вложенных пунктов и подпунктов может иметь такое меню?
мне вот так надо например
1
-1
-2
-3
-1
-2
и не получается показывает только максимум 3 меню вложенных
подскажите если знаете пожалуйста.
vavr, вложенность может быть любой, все зависит от css-оформления меню. Просто перетаскивайте один пункт меню под другой в настройках, и если стили это поддерживают, меню будет вложенное.
Разина, уточните, пункты меню не помещаются по ширине страницы? Или какая-то другая проблема?
Попробуйте отредактировать строку 77 в header.php, окружить картинку ссылкой.
Всем спасибо,что откликнулись!
дело было в настройках wp-config урезано количество вложенности меню до 3
Анастасия, нужно в css задать стили меню. Также, чтобы были выпадающие пункты меню, их для начала нужно в настройках меню перетянуть один под другой (сделать дерево).
Странная ситуация. Это баг в последней версии WP 3.3.1 или только у меня? пункты меню в админке не подхватываются мышкой и не перетаскиваются, ни вверх/вниз, ни вправо/влево.
При попытке перетащить (уопрядочить) пункты меню, происходит выделение контента страницы. У вас такого нет? Как с этим бороться? Я посмотрел, на другом блоге, на другом компьютере и даже на другом хостинге — та же беда. грешу на версию WP.
А можно на сайте под WordPress сделать часть меню скрытым от посетителей? Требуется создать на сайте «служебный вход», доступный только для сотрудников организации. Например, URL для пользователей: abc.ru и они видят общедоступное меню, а при наборе URL для сотрудников: abc.ru/corp/ сотрудники попадают на страницу, с которой открываются вложенные пункты меню — для внутреннего пользования.
Андрей, возможно, самый простой вариант: создать два разных меню, одно включать только на заданной странице (создать для нее отдельный шаблон, куда включить меню), но все равно лучше закрывать страницы паролем. Т.к. если кто-то попадет на такую страничку (например, ее может проиндексировать поисковая система, даже если на нее нет прямой ссылки на сайте), то он сможет просмотреть меню.
Алексей, в Хроме перетаскивается нормально. Возможно проблема браузера.
Здравствуйте! Подскажите пожалуйста а можно ли сделать неактивным пункт меню у которого есть подпункты. По умолчанию пункты родители активны. Вопрос нажмет на него посетитель или нет? Нажмет хорошо, если нет то старания по созданию страницы зря. Машинально при выпадении подпунктов меню тянешься к ним и на родитель уже нет внимания. Но если его не заполнять а кнопка кликабельна то ведет на пустую страницу, не айс.
В этой ветке рекомендуют создавать произвольную ссылку в качестве родителя, и вместо ссылки ставить #.
Спасибо! В инглише не селен вот черт)Пробывал разобраться с этим плагином но безуспешно. Может кто подскажит где есть хоть какой то перевод мануала к нему.
Дмитрий, этот плагин не использует пользовательские меню. В шаблоне должен быть прописан вызов списка рубрик wp_list_categories, после этого достаточно только активировать плагин.
Ваш отзыв





сентября 6, 2010 в 21:40
как поставить на денвер