Если вам приходилось работать с WordPress, то вы наверняка уже имеете представление что такое записи и страницы. Отличие этих терминов более отчетливо ясно для тех, у кого был уже опыт работы с этой системой.
По умолчанию встроенный механизм поиска Wordress выдает все записи и страницы, что в некоторых отдельных случаях может быть не очень желательным для владельцев сайта. К примеру, это могут быть какие-либо специфичные страницы, которые вы не хотите афишировать в результатах поиска на вашем сайте. Разумеется, это может понадобиться не всегда, а только в отдельных случаях, и по этой причине данный пример нужно использовать по ситуации.
Теперь давайте рассмотрим такую задачу, нам требуется исключить все страницы из поиска на сайте, и оставить только выдачу записей. Делается это довольно просто, и вам не придется вкладывать больших усилий в реализацию этой фичи. Как и в большинстве случаев «допиливания» WordPress нам потребуется внести немного кода в файл function.php вашей темы. Под темой в wordpress принято подразумевать файлы вашего шаблона, таким образом, файл function.php должен находиться по такому пути:
\wp-content\themes\имя-темы\functions.php
Открываем этот файл, либо создаем его (если его нет), и вписываем туда этот код:
function wph_exclude_pages($query) { if ($query->is_search) { $query->set('post_type', 'post'); } return $query; } add_filter('pre_get_posts','wph_exclude_pages');
Сохраняем файл, после чего стоит проверить работоспособность данного кода. Для начала скопируйте заголовок какой-либо страницы, затем проверьте наличие его в поиске на сайте. Если в результатах поиска нет этой страницы, то всё прошло успешно, в ином случае стоит смотреть, где вы допустили ошибку. Чтобы вы понимали, при использовании данного снипета кода в результатах поиска будут отображаться только записи, а страницы будут исключены.