Тип поста nav_menu_item

Я от раніше не зауважував, що у 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');

Ну хто б міг подумати…

Gift code для iHerb.com

Gift code для iHerb.com

Короткі адреси у Google+ тепер для всіх

Короткі адреси у Google+ тепер для всіх

Новіший допис

There is one comment

Надіслати коментар