При создании пользовательской фильтрации контента в WordPress – для блогов, каталогов товаров или каталогов услуг – параметр tax_query в WP_Query является одним из самых необходимых инструментов. Он позволяет разработчикам извлекать посты, страницы или пользовательские типы постов на основе определенных терминов таксономии.

Что такое таксономии в WordPress?

Таксономии в WordPress – это способы группировки контента. WordPress поставляется с двумя таксономиями по умолчанию:

  • категория
  • пост-тег

Но разработчики могут создавать и пользовательские таксономии, например:

  • бренд
  • регион
  • тип продукта
  • уровень квалификации

Каждая таксономия содержит термины – например, таксономия региона может включать такие термины, как Европа, Азия или США.

Что такое налоговый запрос?

Налоговый запрос – это массив условий, передаваемых в WP_Query, который указывает WordPress получить только контент, соответствующий определенным терминам таксономии.

К таким запросам относятся:

  • Показ записей в блоге из определенной категории.
  • Отображение товаров, отфильтрованных по атрибутам.
  • Создание динамических фильтров для поиска или архивов.

Простой пример: Фильтр по категории

$args = array(
  'post_type' => 'post',
  'tax_query' => array(
    array(
      'taxonomy' => 'category',
      'field' => 'slug',
      'terms' => 'news',
    ),
  ),
);
$query = new WP_Query($args);

Это вернет все посты в категории новостей.

Операторы, которые вы можете использовать

WordPress поддерживает несколько операторов в налоговых запросах:

  • IN – совпадает с любым из терминов (по умолчанию)
  • NOT IN – исключить эти термины
  • AND – должны совпадать все термины
  • EXISTS / NOT EXISTS – проверить, установлена ли таксономия или нет

Расширенный пример: Множественные условия

Вы можете комбинировать несколько фильтров таксономии:

$args = array(
  'post_type' => 'product',
  'tax_query' => array(
    'relation' => 'AND',
    array(
      'taxonomy' => 'product_type',
      'field' => 'slug',
      'terms' => 'hosting',
    ),
    array(
      'taxonomy' => 'region',
      'field' => 'slug',
      'terms' => array('europe', 'us'),
      'operator' => 'IN',
    ),
  ),
);

В результате будут возвращены продукты типа “хостинг”, доступные в регионах Европы или США.

Практическое использование

Некоторые распространенные случаи использования налоговых запросов в реальных WordPress-проектах:

  • Сайт недвижимости, фильтрующий объявления по типу недвижимости и местоположению.
  • Доска объявлений, показывающая вакансии по отделам и стажу.
  • Магазин WooCommerce, фильтрующий товары по бренду, цвету или наличию.

Резюме

Параметр tax_query в WordPress позволяет разработчикам создавать динамические, релевантные отображения контента. Независимо от того, создаете ли вы фильтрованную сетку товаров, страницу поиска или пользовательский архив, налоговые запросы позволят вам точно настроить, какой контент будет показан пользователям – на основе любой заданной вами таксономии. Хотите пойти дальше? Объедините налоговые запросы с метазапросами или параметрами поиска для еще более мощной фильтрации.