Описание nav_menu_items_{$post_type_name}
— Filter
Хук nav_menu_items_{$post_type_name} позволяет изменять элементы меню для конкретного типа записи в WordPress. Он срабатывает при формировании меню и дает возможность добавлять, изменять или удалять элементы меню в зависимости от типа записи
Примеры использования
Пример добавления нового элемента меню для типа записи ‘product’:
add_filter('nav_menu_items_product', function($items, $args) {
$items[] = ' Кастомная ссылка ';
return $items;
});
В этом примере мы добавляем новый элемент меню с кастомной ссылкой для типа записи ‘product’
Пример изменения названия существующего элемента меню:
add_filter('nav_menu_items_post', function($items, $args) {
foreach ($items as &$item) {
if ($item->title == 'Старое название') {
$item->title = 'Новое название';
}
}
return $items;
});
Здесь мы изменяем название элемента меню с ‘Старое название’ на ‘Новое название’
Пример удаления элемента меню по его ID:
add_filter('nav_menu_items_page', function($items, $args) {
foreach ($items as $key => $item) {
if ($item->ID == 123) {
unset($items[$key]);
}
}
return $items;
});
В этом примере мы удаляем элемент меню с ID 123 для типа записи ‘page’
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо адаптировать элементы меню в зависимости от типа записи, чтобы улучшить навигацию для пользователей
– Производительность
Оптимально использовать хук, чтобы избежать лишних вызовов к базе данных, особенно если вы добавляете много элементов меню
– Предупреждения
Следите за тем, чтобы изменения не вызывали конфликтов с другими элементами меню или плагинами, которые также могут изменять меню
Альтернативы
Тип: filter
Этот хук позволяет изменять объекты меню перед их выводом, предоставляя более широкий доступ к элементам меню
Используйте его, если нужно внести изменения в объекты меню для всех типов записей одновременно