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

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

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

wordpress3-menu

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

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

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

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

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

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

  • avys

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

    • за это отвечает параметр depth

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

    • Neolot

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

  • димидрон

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

  • ampersand

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

    • Neolot

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

      • ampersand

        Адаптация я так понимаю это не просто вывод информации, а её изменение под необходимые нужды. К примеру по умолчанию WP для пунктов меню генерирует доп. параметры (ID, несколько классов), которые для меня в данной ситуации лишние.
        Ожидал увидеть более подробное описание функции wp_nav_menu (); и её аргументов/параметров, таких как container, container_class, container_id, menu_class, menu_id, before, after, link_before, link_after и т. п.

        • Neolot

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

          • ampersand

            >В статье под адаптацией имелось ввиду замену в шаблоне морально устаревшего вывода меню с помощью функции wp_page_menu на wp_nav-menu
            Ну так надо было и писать. То что есть, простите, едва ли тянет на адаптацию.
            Копировать не надо, можно к примеру на русском сделать описание (всё таки не все ж хорошо понимают английский), несколько примеров для лучшего понимания и т. п (Да, в Кодексе тоже есть примеры, но там они простые, рассчитанные на опытных разработчиков).
            Я не говорю что вы ДОЛЖНЫ это делать, просто так в вашем блоге была б более полезная информация, которая привлекала бы большее количество читателей…