Коварная война россии против Украины. Ориентировочные потери врага
(по состоянию на 05.03.2025)
880660
солдат
370
самолетов
331
вертолетов
10256
танков
21304
ББМ
24087
артиллерия
1094
ПВО
1306
РСЗО
39512
машин
28
корабли и катера
Использование запросов WP_Query в WordPress — часть 8 (аргументы для таксономий)
Опубликовано Обновлено: 26.02.2025

Использование запросов WP_Query в WordPress — часть 8 (аргументы для таксономий)

 

 

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

Класс WP_Query в ВордПрессе имеет большое количество возможных аргументов, которые можно использовать для запросов почти всего из таблицы wp_posts базы данных. И сегодня настал черед рассмотреть аргументы для запроса публикаций по таксономиям.

Что такое таксономия в ВордПрессе? Это своеобразный обобщающий термин для сгруппированных по определенному принципу публикаций. Например, категория (рубрика) — это тоже таксономия, ведь по ней можно сгруппировать публикации. К другим видам таксономий можно отнести следующее: теги, форматы публикаций, пункты меню, нестандартные пользовательские таксономии.

 

Параметры аргументов запроса для получения публикаций по таксономии

В предыдущем уроке мы рассматривали параметры для категорий и тегов, но параметры для терминов таксономии несколько сложнее, из-за добавления промежуточного звена tax_query для возможности построения более сложного запроса. В этом массиве указываются аргументы определения таксономии и термины (terms):

  • определение таксономии: taxonomy (string)
  • определение термина таксономии: field (string). По какому полю выбирать таксономию: 'term_id' (по умолчанию), 'name', 'slug'
  • определение терминов (значений) таксономии: terms (int/string/array)
  • значение для включения потомков при иерархической таксономии: include_children (boolean). По умолчанию true — включать.
  • определение оператора условий для таксономии (условие в SQL запросе): operator (string). Возможные значения: IN (по умолчанию), NOT IN, AND, EXISTS и NOT EXISTS.

Использование параметра оператора позволяет запрашивать множественные таксономии.

 

Настройки аргументов запроса для получения публикаций по одному термину таксономии

Вот пример простейшего запроса, в котором мы определяем, что нам нужна таксономия category (категория), искать по полю slug (слаг), и который имеет значение programmirovaniye:

<?php
$args = array(
  'tax_query' => array(
    array(
      'taxonomy' => 'category', // используем таксономию категории
      'field' => 'slug', // нам нужен поиск по полю слаг — части URL категории
      'terms' => 'programmirovaniye', // значение поля слаг
      //'terms' => '15', // если нужно искать не по полю слаг, а по его ID — тогда поле field не обязательно
    )
  )
);
?>

 

Параметры аргументов запроса для получения публикаций по нескольким терминам таксономии

Если вам нужны публикации, которые можно определить несколькими массивами терминов в одной таксономии, тогда вам нужно расширить массив терминов. Например, чтобы найти публикации по нескольким ID тегов, запрос может выглядеть следующим образом:

<?php
$args = array(
  'tax_query' => array(
    array(
      'taxonomy' => 'post_tag', // в этом примере таксономия – это тег
      'terms' => [05, 25] // указываем ID возможных тэгов (публикация в любом)
      // если нужно, чтобы публикации принадлежали обоим тегам, добавьте параметр оператора:
      // 'operator' => 'AND'
      // если нужно исключить теги:
      // 'operator' => 'NOT IN'
    )
  )
);
?>

 

Параметры аргументов запроса для получения публикаций по нескольким терминам и нескольким таксономиям

Если вам нужен запрос с использованием нескольких таксономий, тогда вам нужно расширить массив запроса. В следующем примере будем использовать запрос публикаций из одной категории (programmirovaniye) и одним тегом (wordpress):

<?php
$args = array(
  'tax_query' => array(
    // нужно указать параметр relation (отношение), если несколько условий
    'relation' => 'AND', // в данном примере AND означает, что должны выполняться оба нижних условия
    // 'relation' => 'OR', // если нужно, чтобы выполнялось хотя бы одно из нижних условий
    array(
      'taxonomy' => 'category',
      'field' => 'slug',
      'terms' => ['programmirovaniye'] // категория со слагом programmirovaniye
      // 'terms' => ['programmirovaniye', 'javascript'] // если требуется массив категорий
    ),
    array(
      'taxonomy' => 'post_tag',
      'field' => 'slug',
      'terms' => ['wordpress'] // тег со слагом wordpress
      // 'terms' => ['wordpress', 'php'] // если требуется массив тегов
    )
  )
);
?>

Итак, как вы поняли, совмещая аргумент отношения (relation), оператора (operator) и массив терминов, вы можете создать очень сложный запрос. И это еще не все, начиная с ВордПресс версии 4.1 вы можете даже создавать вложенные массивы таксономий. Это еще больше сможет усложнить SQL запрос требуемых публикаций.

 

 

На сегодняшний день все, — мы рассмотрели использование параметров аргумента tax_query для запроса публикаций по таксономиям. Как вы видите, это очень мощный инструмент, дающий много возможностей и гибкости для запросов к вашей базе данных, и практически любым способом! Следующий практический урок серии будет посвящен рассмотрению запроса по параметрам кастомных полей (Custom Fields или мета-данные постов) в ВордПрессе.

 

 

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Быстрый доступ по сайту SebWeo
Угости меня кофе