Описание customize_nav_menu_searched_items
— Filter
Хук customize_nav_menu_searched_items позволяет изменять элементы меню, которые отображаются в результате поиска в настройках кастомизатора. Он срабатывает, когда пользователь ищет элементы меню через интерфейс кастомизации, позволяя модифицировать массив найденных элементов меню перед его выводом
Примеры использования
Пример фильтрации элементов меню по названию:
add_filter('customize_nav_menu_searched_items', function($searched_items) {
return array_filter($searched_items, function($item) {
return strpos($item['item_title'], 'Специальное предложение') !== false;
});
});
Этот пример оставляет только те элементы меню, название которых содержит ‘Специальное предложение’
Пример изменения URL найденного элемента меню:
add_filter('customize_nav_menu_searched_items', function($searched_items) {
foreach ($searched_items as &$item) {
if ($item['item_id'] == 42) {
$item['item_url'] = 'https://example.com/new-url';
}
}
return $searched_items;
});
Здесь мы изменяем URL элемента меню с ID 42
Пример добавления нового элемента в результат поиска:
add_filter('customize_nav_menu_searched_items', function($searched_items) {
$searched_items[] = [ 'item_id' => 999, 'item_title' => 'Новый элемент', 'item_url' => 'https://example.com/new-item' ];
return $searched_items;
});
В этом примере мы добавляем новый элемент меню в массив найденных элементов
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо кастомизировать элементы меню в кастомизаторе WordPress
– Производительность
Обратите внимание на производительность, так как массив может быть большим и фильтрация может занять время
– Предупреждения
Следите за тем, чтобы изменения не нарушали логику отображения элементов меню
Альтернативы
Тип: filter
Этот хук позволяет изменять массив объектов меню при их выводе, а не в кастомизаторе
Используйте его, если хотите изменить меню на фронтенде, а не только в кастомизаторе