Обзор
Это руководство покажет, как добавить пользовательские поля к пункту меню WordPress и как затем изменить HTML пункта меню.
Меню используются для организации группы ссылок (пунктов меню), которые ваша тема будет выводить в качестве навигации. Если вы не знакомы с регистрацией или редактированием меню, прочитайте документацию Руководство пользователя меню WordPress и Navigation_Menus.
Пункты меню добавляются в меню. Узнайте, как добавлять поля в меню.
Журнал изменений
- Поддержка меню добавлена в версии 5.6.0
Добавление полей
Плагин Advanced Custom Fields очень упрощает добавление пользовательских полей к пункту меню. Следуйте инструкциям ниже.
- На экране админки Пользовательские поля нажмите кнопку Добавить новое, чтобы создать новую группу полей.
- Добавьте поля, которые вы хотите видеть при редактировании пункта меню
- В разделе Расположение выберите правило Пункт меню и укажите ‘Все’ (чтобы показывать эту группу полей во всех пунктах меню) или конкретное меню/расположение (чтобы показывать эту группу полей только для пунктов определённого меню)
Измените параметр Размещение инструкции на ‘Ниже подписей’, чтобы максимально приблизить интерфейс к стандартному UI ядра WP.
Редактирование полей
После того как вы создадите группу полей и назначите ее отображение на экране редактирования пункта меню, значения полей можно редактировать на странице админки Внешний вид > Меню.
WP хранит каждый пункт меню как объект записи в таблице
wp_posts. ACF будет хранить все значения пользовательских полей в таблицеwp_postmeta.
Отображение полей
Настроить HTML для пункта меню WordPress можно легко с помощью фильтра wp_nav_menu_objects. Этот фильтр срабатывает каждый раз, когда меню выводится (через функцию wp_nav_menu()) и позволяет изменять объекты пунктов меню. Каждый объект содержит значение title, которое выводится в элементе ссылки меню <a>.
В этом примере показано, как изменить все объекты пунктов меню и добавить значок, если для нового поля ‘icon’ задано значение.
functions.php
add_filter('wp_nav_menu_objects', 'my_wp_nav_menu_objects', 10, 2);
function my_wp_nav_menu_objects( $items, $args ) {
// цикл
foreach( $items as &$item ) {
// переменные
$icon = get_field('icon', $item);
// добавить значок
if( $icon ) {
$item->title .= ' <i class="fa fa-'.$icon.'"></i>';
}
}
// вернуть
return $items;
}Вывод
Вот как это может выглядеть в вашем браузере. Обратите внимание на новые элементы значка <i>!
Примечания
Зарезервированные ключевые слова
Имейте в виду, что для пунктов меню существуют некоторые зарезервированные ключевые слова, которые могут конфликтовать с именами полей. Чтобы избежать ошибок, которые потенциально могут сломать экран настройщика, не используйте “description” как имя поля, когда оно привязано к пункту меню.
Обновлено: 01.06.2026


