Делаем собственное меню в WordPress 3.0

Делаем собственное меню в WordPress 3.0

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

Делаем собственное меню в WordPress 3.0

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

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

Но когда блог разрастается, то требуется все больше и больше всяких дополнений и в частности создавать дополнительные статические станицы, которые бы не выводились в списке постов на главной странице, но в тоже время имели на себя ссылку с главной. Да, именно для этого и нужны страницы в WordPress и это очень удобно. А ссылки на них можно выводить в сайдбаре, как сделанно, например, у меня. Вы можете видеть ссылки — Что такое RSS подписка, Подсказать идею поста, Гостевые посты и другие.

В общем, думаю, с этим все понятно. Но я немножко отошел от темы 🙂 .

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

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

Сначала я тоже попробовал просто удалить этот код и сделать простое перечисление, но не вышло. Все начинало работать очень криво. Конечно, можно было поковыряться побольше и решить эту задачу как-то по другому, но я считаю, что нашел очень гибкий путь по ее решению, когда просто создал собственное меню для WordPress. А самое главное это заняло максимум 10 минут времени.

Кстати, нужно заметить, что эта функция становится доступной только с версии WordPress 3.0, поэтому придется обновиться до этой версии. Я писал отдельный пост как я обновился до этой версии — Не так страшен WordPress 3.0.1, обновление прошло ровно – полет нормальный.

Обновились? Тогда давайте приступим к созданию собственного меню для вашего WordPress блога.

Первое, что нам понадобится — это создать ваше новое меню. Для этого, в админке вашего блога переходим по ссылке — Внешний вид/Меню. Попадаем на страницу создания новых меню.

Далее прописываем заголовок меню, у меня он называется pages_header. Следующим шагом, добаляем страницы (а можно также рубрики и просто произвольные ссылки в ваше новое меню). У нужных рубрик и страниц просто ставим галочки и жмем добавить в меню. Если нужно добавить произвольную ссылку — прописываем ее руками.

Потом, можно настроить какой текст будет выводиться у каждой добавленной вами ссылки в меню, а также — атрибут title. Сделали? Тогда кликаем — сохранить меню.
Чтобы вам было понятнее, я привожу полноразмерный кликабельный скришот из моей админки.

Мое меню в адмике WordPress 3.0

Новое меню создано, теперь его нужно добавить в место, где оно будет выводиться.

Чтобы это сделать, сначала в файле functions.php, который лежит в вашей теме WordPress, нужно дописать следующее.

[php]add_theme_support( ‘nav-menus’ );[/php]
— это я «нагуглил» в интернете. В моем же случае в данном файле уже было прописано:
[php]register_nav_menus();[/php]
Поэтому у себя, в этом файле, я не чего дополнительно не прописывал — все и так работало. Однако, возможно у меня просто сильно «перепиленная» тема и поэтому все «как-то не так как у всех». Но цель у нас одна — сделать собственное меню и главное рабочее 🙂 , поэтому прописывайте как я описал выши все должно работать.

Теперь осталось немного — прописать код, где будет выводиться это меню в WordPress.

Код имеет вот такой вид:

[php]wp_nav_menu( ‘id=pages_header’ );[/php]
Замечу что название pages_header это название моего меню (которое вы создали в админке) — ваше может называться по другому.

Обычно этот код прописывается в файле header.php, причем в моем случае имеет вообще страшный вид 🙂 :
[php]<?php wp_nav_menu( array( ‘id=pages_header’, ‘sort_column’ => ‘menu_order’, ‘container_class’ => ‘menubox’ ) ); ?>[/php]

Все эти дополнительные записи задают как раз те самые стили, о которых я писал в начале поста и которые пропадали, если я делал просто перечисление.

Чтобы понять, что они обозначают, советую вам обратиться вот к этой странице на официальном ресурсе по WordPress — http://codex.wordpress.org/Function_Reference/wp_nav_menu (язык английский), тут все расписано от и до.

Вот в общем то и все. Ваше новое меню для WordPress уже должно заработать. Можете идти скорее проверять 😉 .

Небольшой анонс следующего поста. В нем я расскажу, что думаю относительно вот этой новости от компании Яндекс — Ограничение влияния искусственных ссылок на ранжирование, которая датируется 23 сентября 2010 года. Хочу поделиться своим мнением, причем, естественно ругаться мне не хочется, я скажу как с этим работать. И буду рад услышать ваше мнение.

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

Игорь (Luckyboy)

Comments (10)

  • Kosmos.Vokrug

    не работает

    20 ноября 2010 at 20:09
  • Я

    Создатель вордпресса таки еблан (если комманда, то ебланы все). Первый и последний раз я согласился сделать на нём сайт… сори за офтоп.
    Но я уже 2 часа не могу добиться чтоб у меня меню не вставлялось в див…
    ВП видимо как чак норрис — слишком крут для простых действий.

    29 сентября 2011 at 16:30
    • Luckyboy

      Хахахх, ну походу 🙂 .

      1 октября 2011 at 1:43
  • Владимир

    Не совсем понял как создавать новое меню, точнее совсем не понял, например, если в установленной мной на WP теме нет футера, то как мне его самостоятельно создать, и как создать дополнительные сайдбары?

    7 декабря 2011 at 20:02
    • Luckyboy

      Это уже не ко мне. В комменте я точно не разъясню как футер создать с нуля 🙂 Гугл с Яндексом в помощь 🙂

      8 декабря 2011 at 11:41
  • Юрий

    А как сделать дополнительное независимое меню с категориями? Допустим Есть меню с категориями фильмов, а ниже меню с категориями статьи, и чтоб статьи не выводились на главную.

    24 марта 2012 at 3:06
  • Номад Кочующий

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

    20 августа 2012 at 16:43
  • Дмитрий

    Такой вопрос. У меня есть шаблон. Он был переведен на русских неизвестным челом, который вобще вырезал меню, а написал там только какой-то дикий текст, типа, что бери сам думай. Так вот вопрос. Что сделать, чтобы меню работало? В файле функтионс такая вот шляпа.

    function fallbackmenu1(){ ?>

    Привет инопланетянам

    Привет инопланетянам вместо меню показывается. Так что мне сюда написать? чтоб работало нормально?

    25 декабря 2012 at 22:17
  • Андрей

    Спасибо большое за статью. Долго не мог понять как правильно создать меню, и вот наконец то, что нужно! Автору респект! Все понятно и доходчиво!!!

    11 февраля 2013 at 3:24
  • inferi

    Вы абсолютно правы. В этом что-то есть и идея отличная, согласен с Вами.

    20 июня 2015 at 13:26

Comments are closed.