n-wp.ru — блог о WordPress

Как ограничить область поиска определенными типами записей

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

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

Для того, чтобы определить область поиска, можно использовать встроенный в WordPress фильтр pre_get_posts, с помощью которого можно указать типы записей, отправляемые на обработку функции поиска:

Этот код нужно добавить в файл functions.php используемой вами темы. Типы записей определяются массивом:

В данном примере область поиска ограничена постами и страницами — только эти типы записей появятся среди результатов. Если вам нужно добавить другие типы записей, например, portfolio и news, то нужно расширить области — добавить эти пользовательские типы записей в список разрешенных записей для поиска:

tiaurus

Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

Комментировать