jivo banner 468x60jivo banner 728x90jivo banner 930x180etxt banner 468x60etxt banner 728x90etxt banner 930x180smsc banner 468x60smsc banner 728x90smsc banner 930x180

Как исключить из результатов поиска страницы, категории или автора на WordPress

По умолчанию функционал поиска в WordPress показывает в результатах все типы записей и страниц. Вы можете захотеть убрать из поиска страницы, категорию, таксономию или записи конкретного автора.

Чтобы это осуществить нам нужно поправить основной запрос is_search() на хуке pre_get_posts. Рассмотрим примеры.

Как скрыть из поиска страницы

Вы можете использовать следующий код, чтобы оставить в результатах поиска только тип поста post.

add_action( 'pre_get_posts', 'skill_search_filter' );
function skill_search_filter( $query ){
	if( ! is_admin() && $query->is_main_query() && $query->is_search ){
		$query->set( 'post_type', 'post' );
	}
}

Т.к. здесь нет такого метода как unset, мы можем только переназначить переменные методом set.

Что касается условий, то мы проверяем, что находимся не в админке, что это основной запрос и что это запрос поисковый.

Будьте аккуратнее, этим кодом вы исключите из поиска не только стандартные страницы, но и все записи пользовательского типа.

Как скрыть из поиска категорию

Чтобы исключить посты определенной категории из результатов поиска воспользуйтесь следующим примером:

add_action( 'pre_get_posts', 'skill_search_filter' );
function skill_search_filter( $query ){
	if( ! is_admin() && $query->is_main_query() && $query->is_search ){
		$query->set( 'cat','-2,-3' );
	}
}

В результате работы этого фильтра будут исключены посты, которые находятся в категориях 2 и 3 из результатов поиска.

Если пост прикреплен одновременно к категориям 3 и 4, он не будет исключен из результатов поиска этим фильтром.

Как скрыть из поиска кастомный тип записи

Для исключения из поиска результатов произвольного типа записей достаточно установить аргумент 'public' = 'false' при регистрации (функция register_post_type()), но если такой возможности нет, вы также можете воспользоваться этим хуком.

Здесь нам понадобится модификация первого примера: нам нужно передать в $query только те типы постов, которые мы хотим оставить в результатах поиска.

add_action( 'pre_get_posts', 'skill_search_filter' );
function skill_search_filter( $query ){
	if( ! is_admin() && $query->is_main_query() && $query->is_search ){
		$query->set('post_type', array( 'post', 'portfolio', 'service' ) );
	}
}

Например, этот код оставит в результатах поиска только посты, страницы портфолио и услуги.

Как скрыть из поиска записи автора

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

add_action( 'pre_get_posts', 'skill_search_filter' );
function skill_search_filter( $query ){
	if( ! is_admin() && $query->is_main_query() && $query->is_search ){
		$query->set ( 'author','-8, -10, -12' );
	}
}

В результате его выполнения будут исключены записи авторов, имеющих ID 8, 10 и 12.

С помощью плагина

Если вы по каким-то причинам не хотите править код вашего сайта, вы можете воспользоваться бесплатным плагином Search Exclude. Там достаточно простые и интуитивно понятные настройки.

skillbox banner 480x320skillbox banner 728x90skillbox banner 120x600smsc banner 480x320smsc banner 728x90smsc banner 120x600etxt banner 480x320etxt banner 728x90etxt banner 120x600

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 2

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Как сделать webp без плагинов в WordPress

WebP — это современный формат сжатия изображений без потери качества, который напрямую влияет на скорость загрузки сайта. Конвертирование изображений из jpg и png в формат webp может дать существенный прирост в баллах по google page speed. Формат webp поддерживается большинством современных браузеров. Вы без труда можете найти плагины, которые помогут вам автоматически конвертировать изображения, добавленные…
Подробнее

Как вывести все изображения из произвольной папки без плагинов в WordPress

При разработке своих сайтов вам может понадобиться вывести галереи изображений из произвольных папок без их загрузки в библиотеку. Давайте рассмотрим пример, как это сделать с помощью шорткода: Использование: [folder-gallery path=’/data/images/’] Как видите, функция принимает путь до искомой папки (обязательно с открывающим и закрывающим слешем), в функции устанавливаются разрешенные типы изображений и формируется вывод с классами…
Подробнее

Как изменить выравнивание и размер изображения при вставке в редактор WordPress

При добавлении изображения в пост, по умолчанию WordPress вставляет его в размере medium и без выравнивания. Чтобы при загрузке картинки ей прописывалось выравнивание по центру и полный размер, вы можете использовать такой код:
Подробнее