Фильтруем результаты поиска в Вордпресс

Любой развивающийся сайт помимо его наполнения основным контентом, со временем обрастает массой дополнительной и вспомогательной информации.

Это могут быть различные баннеры, рекламные объявления, отзывы, цитаты, портфолио, события, мероприятия и многое другое. Весь вспомогательный контент принято выносить в кастомные типы записей WordPress (custom post types). Что позволяет с лёгкостью управлять и манипулировать данными.

Поисковый механизм WordPress устроен таким образом, что по умолчанию поиск осуществляется по всем типам записей. Что в некоторых случаях совершенно недопустимо.

Чтобы самостоятельно определить типы записей по которым должен осуществляться поиск, можно воспользоваться таким фильтром.

function searchfilter($query) {
    if ($query->is_search && !is_admin() ) {
        $query->set('post_type',array('post','page'));
    }
return $query;
}
add_filter('pre_get_posts','searchfilter');

Теперь поиск будет осуществляться только по записям (post) и страницам (page).

⚡️ Будни веб‑разработчика на фрилансе и ежедневно полезные материалы по разработке на моем канале в Телеграм — присоединяйтесь!

Иван Данилин
Автор Иван Данилин

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

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