Я от раніше не зауважував, що у WordPress існує такий вбудований тип поста nav_menu_item
. Тепер дізнався завдяки одній ситуації, чи точніше поведінці двигунця ВП. Якщо по суті, то моєю задачою було відфільтрувати типи постів які слід показувати у результатах пошуку. Взагалі це робиться ось так:
function myFilter($query) { if ( is_search() ) { $query->set('post_type', array('post', 'custom_post_type')); } return $query; } add_filter('pre_get_posts','myFilter');
Що я зробив? З допомогою фільтра pre_get_posts
я вказав виводити у результатах пошуку лише записи типу “пост” і мого кастомного типу поста. І щоб ви думали? А менюшка то зникла на сторінці результатів пошуку! 🙂 Менюшка викликається wp_nav_menu()
і я дуже здивувався, що меню зникло. Після кількох тестів виявилось, що справа якраз у тому, що я фактично виключив виведення типу поста nav_menu_item
зі сторінки результатів пошуку. Отже, мою задачу правильніше виконати так:
function myFilter($query) { if ( is_search() ) { $query->set('post_type', array('post', 'custom_post_type', 'nav_menu_item')); } return $query; } add_filter('pre_get_posts','myFilter');
Ну хто б міг подумати…
Comments are closed.
Опа, дякую за роз’яснення!