Статьи

Как использовать новую функцию пользовательского меню в WordPress 3.0

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

Сначала я покажу вам, как эта функция работает в новой теме WordPress по умолчанию, Twenty Ten; Затем я покажу вам несколько способов, как вы можете использовать его в своих темах.

Я предполагаю, что у вас есть установка WordPress 3.0 и работает. Давайте начнем с рассмотрения нового интерфейса меню. Нажмите «Меню» на панели «Внешний вид» панели инструментов WordPress, и вы увидите интерфейс для создания первого меню:


Добавить новое меню

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

Двадцать десять тем основной навигации

Что это за основная навигация? Это основное меню, отображаемое чуть ниже заголовка темы Twenty Ten. Вы спрашиваете, почему в этом меню уже были элементы до того, как вы создали свое меню? Хороший вопрос.

Новая функциональность WordPress 3.0 основана на функции wp_nav_menu , и она умная. Если пользователь не определил никаких меню, wp_nav_menu обратится к стандартному wp_page_menu , который отображает список страниц сайта. Это то, что вы видели до сих пор. Но если вы выберете новое меню в раскрывающемся меню под «Основной навигацией» и нажмете «Сохранить», ваше пользовательское меню заменит список страниц по умолчанию.

Итак, теперь вы знаете, как работает новая функциональность меню, но как вы используете ее в своей теме? Ну, самый простой способ — вызвать wp_nav_menu там, где вы хотите, чтобы появилось пользовательское меню. Как и пиктограммы постов и области виджетов, ваше меню сначала нужно «зарегистрировать» в WordPress. Давайте посмотрим, как Twenty Ten все это делает. Сначала в header.php мы находим вызов wp_nav_menu :

 < ?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?> 

Это немного сложнее, чем простой вызов, но ненамного: container_class просто указывает атрибут class div , который theme_location меню, а theme_location сообщает WordPress, какое из зарегистрированных меню мы хотим использовать.

Чтобы выяснить, где меню зарегистрированы, нам нужно перейти к functions.php , где мы находим вызов функции с метко названным register_nav_menus :

 // This theme uses wp_nav_menu() in one location. register_nav_menus( array( 'primary' => __( 'Primary Navigation', 'twentyten' ), ) ); 

Используемый здесь 'primary' ключ соответствует primary расположению, указанному в вызове wp_nav_menus . Давайте разберемся с этим. Мы говорим WordPress, что наша тема будет иметь одно место в меню, называемое primary , и будет отображаться пользователю в качестве основной навигации. Затем в заголовке мы вызываем wp_nav_menu , спрашивая его о том, что пользователь назначил первичному местоположению. Довольно просто

А что если вы захотите добавить дополнительное меню к своей теме WordPress? Давайте сделаем это. Для начала style.css копию темы Twenty Ten и отредактируйте информацию о теме в style.css чтобы дать ей свое имя. Затем мы изменим этот раздел в functions.php чтобы зарегистрировать дополнительное меню:

 // This theme uses wp_nav_menu() in two locations. register_nav_menus( array( 'primary' => __( 'Primary Navigation', 'twentyten' ), 'secondary' => __('Secondary Navigation', 'twentyten') ) ); 

Затем, где бы вы ни хотели, чтобы вторичное меню появилось в вашей теме, просто добавьте следующее:

 < ?php wp_nav_menu( array( 'theme_location' => 'secondary' ) ); ?> 

И вы сделали. Если вы загрузите интерфейс меню в Dashboard, вы увидите еще одно раскрывающееся меню, которое позволяет вам выбрать второе меню:

Наше вторичное меню

Где отсюда?

Конечно, в wp_nav_menu и новой функциональности меню гораздо больше, чем я только что рассказал. Как всегда, ваша первая остановка на пути к просветлению в WordPress — это Кодекс : как вы скоро увидите, wp_nav_menu имеет большой выбор опций. И, конечно же, не забывайте проверенную временем технику каждого веб-разработчика, сталкивающегося с новой игрушкой: экспериментами!