Wordpress: результаты поиска только в одной категории

Я использую этот код, чтобы убедиться, что результаты поиска показывают только результаты из одной категории. Это работает очень хорошо, но побочным эффектом является то, что в серверной части на странице "Все сообщения" поиск также дает только результаты из той же категории. Как я могу убедиться, что он работает на переднем конце, но не на заднем?

//EXCLUDE CATEGORIES FROM SEARCH RESULTS
function SearchFilter($query) {
if ($query->is_search) {
$query->set('cat','1');
}
return $query;
}
add_filter('pre_get_posts','SearchFilter');

1 ответ

Решение

Ну, это общая проблема, и решение простое: чтобы избежать этого, наш add_filter должен быть выполнен только во внешнем интерфейсе. Простой способ сделать это - использовать функцию is_admin это булева функция. Так:

function SearchFilter($query) {
  if ($query->is_search) {
    $query->set('cat','1');
  }
  return $query;
}
if(!is_admin())
  add_filter('pre_get_posts','SearchFilter');

Это оно?

Другие вопросы по тегам