Исключаем категории из поиска в WordPress

Рассмотрим как можно исключить статьи из определенных категорий, которые не должны появляться в результатах поиска WordPress.

function exclude_category_from_search($query) {
	if ($query->is_search) {
		$query->set('cat', '-XXX');
	}
	return $query;
}
add_filter('pre_get_posts','exclude_category_from_search');

Добавляем данный сниппет в файл functions.php и меняем XXX на ID нужной нам категории, чтобы получилось, например, так:

$query->set('cat', '-1');

Также можно исключить несколько категорий:

$query->set('cat', '-24,-45,-52');

Не забывайте знак минус (-) перед каждым числом.

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

Исключаем страницы

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

Мы можем просто полностью исключить все страницы из результатов поиска следующим сниппетом:

function exclude_posts_from_search($query) {
	if ($query->is_search) {
		$query->set('post_type', 'post');
	}
	return $query;
}
add_filter('pre_get_posts','exclude_posts_from_search');

По-сути, мы просто добавили строчку, которая отвечает за ограничения по типу записи:

$query->set('post_type', 'post');

Теперь вы можете сами управлять своими результатами поиска на WordPress.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вы можете использовать HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Технологии

Статьи по теме Wordpress Статьи по теме PHP Статьи по теме Python Статьи по теме Javascript Статьи по теме Bootstrap Статьи по теме Git Статьи по теме Node JS