Создание меню для сайта на WordPress

Создание меню навигации в теме для WordPress

Для создания меню необходимо воспользоваться функцией wp_nav_menu(), параметром которой является массив мета данных для настройки меню. Далее нужно это меню зарегистрировать в файле functions.php после чего в панели WordPress, во вкладке Внешний вид появится новая вкладка с названием Меню, именно в ней мы сможем окончательно завершить создание и настройку меню для темы.

Шаг 1: Создание и определение параметров меню

Для начала нужно открыть файл header.php и в соответствующем блоке, в котором будет находится будущее меню, добавить функцию отображения меню wp_nav_menu() с набором аргументов определённых в массиве $args.

Все доступные параметры меню приведены в таблице в конце статьи.

Шаг 2: Регистрация созданного меню

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

Шаг 3: Настраиваем меню в панели управления

Переходим во вкладку Меню, где определяемся с именем нового меню и сохраняем его. Далее можно добавить в него необходимые страницы.

Создание меню для темы WordPress

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

Пример добавления ссылок на страницы в меню

В завершении нам остаётся только перейти во вкладку Управление областями и соотнести названия только что созданных меню с теми именами, которые мы упомянули при регистрации в функции register_nav_menus(). На этом процесс создания меню завершен.

Управление областями меню

Для создания меню в других областях сайта, например в футере или сайдбаре, нужно всего лишь в соответствующих файлах (footer.phpsidebar.php), по аналогии с header.php, создать функцию wp_nav_menu() с определенными параметрами и зарегистрировать её.

В конечном итоге мы получим следующий результат.

Вывод готового меню в header.php

Вы можете визуально выделить активную ссылку меню, для этого укажите css-стили для селектора .current-menu-item.

Список доступных параметров для функции wp_nav_menu( )

ПараметрОписание
menuназвание меню. Может содержать: id, slug или имя.
menu_classимя CSS класса, который будет назначен элементу оборачивающему меню (ul).
По умолчанию — ‘menu’.
menu_idимя идентификатора, который будет назначен элементу оборачивающему меню (ul).
containerназвание контейнера, в который будет обернуто меню.
По умолчанию — ‘div’.
container_classимя CSS класса для контейнера меню.
По умолчанию — ‘menu-{menu slug}-container’.
container_idимя идентификатора для контейнера меню.
fallback_cbесли меню не существует будет вызвана обратная функция (callback). Если ее вызов не нужен, установите значение — ‘false’.
По умолчанию — ‘wp_page_menu’.
beforeтекст, отображающийся перед ссылкой (перед тегом <a>).
afterтекст, отображающийся после ссылки (после тега <a>).
link_beforeтекст, отображающийся перед значением ссылки (внутри тега <a>).
link_afterтекст, отображающийся после значения ссылки (внутри тега <a>).
echoотвечает за вывод меню. Значение ‘true’ — вывести меню, значение ‘false’ — не выводить меню.
По умолчанию — ‘true’.
depthвывод определенного количества вложенных уровней меню. Значение 0 — вывод всех уровней.
По умолчанию — 0.
walkerуказывает объект, в котором описано построение меню.
По умолчанию — Walker_Nav_Menu.
theme_locationвыбор места, где нужно вывести меню.  Значение должно быть зарегистрировано в функции register_nav_menu()
items_wrapописывает способ обертки пунктов списка.
По умолчанию — ‘<ul id=»%1$s» class=»%2$s»>%3$s</ul>’.