Адаптируем вывод меню для WordPress 3.0

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

Вот как будет выглядеть панель управления меню в WordPress 3.0

wordpress3-menu

Будем считать, что вы уже сделали меню и дали ему название navbar.

Для начала, добавьте в файл functions.php следующие строки:

add_theme_support( 'nav-menus' );

Далее, найдите в коде вашей темы место, где вызывается меню. Обычно это файл header.php и функция wp_list_pages. Вместо старого куска кода вставьте следующее:

wp_nav_menu( 'id=navbar' );

В принципе, этого уже достаточно для вывода. Если же нужно сделать более сложный вывод, тогда милости прошу на страницу описания wp_nav_menu в Codex.

Метки: ,

Комментарии

  1. seownik 25.03.2010 в 20:11 #

    спасибо! интересно было почитать думаю пригодится!

  2. Kinovel 25.03.2010 в 20:33 #

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

  3. avys 20.07.2010 в 14:14 #

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

  4. Artem 16.08.2011 в 13:01 #

    Как вывести сразу 2 разных меню на одну страницу? 1 — вертикальное — выпадающее и 2-е вертикальное. Задача — все пункты меню — это ссылки на страницы. Проблема — по умолчанию выводит одинаковые пункты меню, а надо разделить их. Может кто сталкивался с такой проблемой?

    • Neolot 16.08.2011 в 13:14 #

      Создайте 2 меню в админке, наполните. Дальше вставьте вызовы этих меню в шаблон, параметры wp_nav_menu подробно расписаны в документации, ссылка в статье. А оформление, выпадающие пункты это верстка.

  5. димидрон 03.09.2011 в 13:58 #

    а зачем менять что то по одной строчке если можно нажать ссылку — обновить wordpress

  6. ampersand 04.09.2011 в 14:25 #

    И где тут простите адаптированный вывод меню?..

    • Neolot 04.09.2011 в 14:37 #

      А что вы, простите, ожидали увидеть?

      • ampersand 04.09.2011 в 15:04 #

        Адаптация я так понимаю это не просто вывод информации, а её изменение под необходимые нужды. К примеру по умолчанию WP для пунктов меню генерирует доп. параметры (ID, несколько классов), которые для меня в данной ситуации лишние.

        Ожидал увидеть более подробное описание функции wp_nav_menu (); и её аргументов/параметров, таких как container, container_class, container_id, menu_class, menu_id, before, after, link_before, link_after и т. п.

        • Neolot 04.09.2011 в 15:10 #

          В статье под адаптацией имелось ввиду замену в шаблоне морально устаревшего вывода меню с помощью функции wp_page_menu на wp_nav-menu, которая появилась в WP 3.0 полтора года назад.

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

          • ampersand 04.09.2011 в 15:26 #

            >В статье под адаптацией имелось ввиду замену в шаблоне морально устаревшего вывода меню с помощью функции wp_page_menu на wp_nav-menu

            Ну так надо было и писать. То что есть, простите, едва ли тянет на адаптацию.

            Копировать не надо, можно к примеру на русском сделать описание (всё таки не все ж хорошо понимают английский), несколько примеров для лучшего понимания и т. п (Да, в Кодексе тоже есть примеры, но там они простые, рассчитанные на опытных разработчиков).

            Я не говорю что вы ДОЛЖНЫ это делать, просто так в вашем блоге была б более полезная информация, которая привлекала бы большее количество читателей...

Ваше мнение

Если вам нужно вставить код, оберните его в специальный шорткод [php], [html], [css], [js].
Например: [js]Ваш код[/js]