Часто случается, что включение в результаты поиска некоторых страниц и даже некоторых постов может сбить читателя с толку. Бывает полезно исключить страницы, не совпадающие с общей тематикой блога из результатов поиска. Также могут быть и посты, которые не хочется показывать в общем списке случайных находок.
Для проведения манипуляций нам понадобится файл function.php, в который надо будет добавлять некоторые коды.
Для того, чтобы исключить из результатов поиска все имеющиеся на блоге статические страницы, надо добавить в файл function.php следующий код:
function SearchFilter($query) {if ($query->is_search) {$query->set('post_type', 'post');}return $query;}add_filter('pre_get_posts','SearchFilter');
Можно сделать предложенный код более гибким и исключать из поиска страницы и посты только с выбранными ID. В этом случае необходимо добавить в файл function.php следующий код:
function SearchFilter($query) {if ($query->is_search) {$query->set('cat','4298,1015');}return $query;}add_filter('pre_get_posts','SearchFilter');
В приведенном примере числа 4298 и 1015 являются ID страниц и посто, которые необходимо исключить из результатов поиска.
Этот пост опубликован в рамках постоянно пополняемого цикла статей «Хитрости и хаки wordpress». При использовании поста использованы материалы с блогов WpRecipes и Bavotosan.com
Спасибо, информация очень полезная и доступно рассказано, как раз то что мне нужно было)
Приятно, что пригодилось. Заходите чаще.
ого! Спасибо, а то долго мучался с поиском по блогу(
Спасибо Вам, что читаете блог.
Хорошо, что все получилось.
Спасибо. Ваш код самый простой из всех, которые мне пришлось просмотреть при поиске решения. Я на своем новом сайте собираю все полезные «кусочки кода», которые нахожу в сети, поэтому сделаю репост и сошлюсь на вас. Еще раз спасибо за простое и практичное решение.
Спасибо тебе
Вы не правы в обоих случаях. Ваши примеры не исключают, а оставляют для поиска только указанное. Так, в последнем примере будет выводится только те, что соответствуют указанным ID. А с первым примером, например, не работает поиск по картинкам внутри админки.