Підступна війна росії проти України. Орієнтовні втрати ворога
(станом на 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 (слаг), і що має значення programuvannya:

<?php
$args = array(
  'tax_query' => array(
    array(
      'taxonomy' => 'category', // використовуємо таксономію категорії
      'field' => 'slug', // нам потрібен пошук по полю слаг — частині URL категорії
      'terms' => 'programuvannya', // значення поля слаг
      //'terms' => '15', // якщо потрібно шукати не по полю слаг, а по його ID — тоді поле field не обов’язкове
   )
  )
);
?>

 

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

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

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

 

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

Якщо вам потрібен запит з використанням кількох таксономій, тоді вам потрібно розширити масив запиту. В наступному прикладі будемо використовувати запит публікацій з однієї категорії (programuvannya) та одним тегом (wordpress):

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

Отже, як ви зрозуміли, поєднуючи аргумент відношення (relation), оператора (operator) та масив термінів, ви можете створити дуже складний запит. І це ще не все, починаючи з ВордПрес версії 4.1 ви можете навіть створювати вкладені масиви таксономій. Це ще більше зможе ускладнити SQL запит потрібних публікацій.

 

 

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

 

 

Напишіть тут свою думку/питання

Ваша пошта не публікуватиметься. Обов’язкові поля позначені *


Швидкий доступ по сайту SebWeo
Пригости мене кавою