Описание функции wp_get_nav_menu_items()
Функция wp_get_nav_menu_items() возвращает массив элементов навигационного меню для заданного меню. Она позволяет получить как все элементы меню, так и отфильтрованные по определенным критериям, что удобно для построения динамических навигационных систем на сайте.
Эта функция используется в темах и плагинах для отображения навигационных меню.
Параметры
$menu
Тип: mixed
Обязательный: Да
По умолчанию: null
Описание: ID или название меню, для которого нужно получить элементы
Возможные значения:
type: int или string
example: primary, 123
$args
Тип: array
Обязательный: Нет
По умолчанию: array()
Описание: Массив аргументов для фильтрации элементов меню
Возможные значения:
orderby: menu_order, title
order: ASC, DESC
post_type: Типы записей для фильтрации меню
Возвращаемое значение
Тип: array
Описание: Массив объектов WP_Post, представляющих элементы меню
Возможные значения:
• Массив объектов WP_Post при успешном выполнении
• Пустой массив если меню не найдено
• WP_Error в случае ошибки
Примеры использования
Базовый пример получения всех элементов навигационного меню ‘primary’
$menu_items = wp_get_nav_menu_items('primary');
foreach($menu_items as $item) {
echo $item->title . ', ';
}
Элементы меню выводятся через запятую
Получение элементов меню, отсортированных по порядку меню
$args = array(
'orderby' => 'menu_order',
'order' => 'ASC'
);
$menu_items = wp_get_nav_menu_items('primary', $args);
Элементы будут отсортированы по заданному порядку
Безопасность
Валидация входных данных: Параметры меню проверяются на корректность внутри функции
Санитизация: Параметры автоматически очищаются WordPress
Рекомендации: При выводе данных используйте esc_html() для названий элементов меню
— Связанные функции
Выводит меню на экран
Получает местоположения меню
— Хуки
Фильтрует элементы меню после их получения
Фильтрует аргументы перед запросом элементов меню
— Примечания
– Ограничения
Возвращает только элементы меню для зарегистрированных меню
– Частые проблемы
- Пустой результат при неправильном ID/названии меню
- Ошибки при отсутствии элементов меню