WordPress — делаем поиск в определенной категории либо по кастомным полям

Казалось бы, такая крайне тривиальная задача, но гуглить прошлось долго, а по итогу вообще решение скопировал из старых проектов. На будущее пишу этот пост, чтобы так долго не искать.

Предположим, что нам нужно исключить из выдачи внутрисайтового поиска сайта на WP категории с id=1 и id=2.

Можно в файле темы search.php написать следующее:

А затем заменить подобное:

на:

То бишь добавить к have_posts и the_post()  $query556->

Если нужно не исключать категории, а наоборот, отфильтровать, чтобы показывались результаты категории 5 и 6, то меняем в вышеуказанном коде ‘category__not_in’=>array(1,2) на ‘cat’=>array(5,6)

Также в сию конструкцию можно впихнуть любые нужные вам параметры WP_Query. Искать по кастомным полям? Без проблем, добавляем

и у нас ищется уже только по записям, кастомные поля lat и syn которых содержат в себе ключевую фразу.

Также часто нужно сделать, чтобы искалось либо по title записи, либо по кастомным полям. Делается это через 2 запроса (один мы только что написали), которые потом объединяем в один.

Если кому нужны доработки любой сложности по WordPress — пишите в контакты, сделаем, ценник демократичный, 1к / час, за час можно успеть многое.

С вами был Linur, спасибо за внимание.

Странно, что в WP нет функций фильтрации по умолчанию
Действительно!Да кому они нужны!

Оцените статью!

4.5 (90%) всего голосов: 2

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Для отправки сообщения выберите лишнее изображение