Використання запитів 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 або мета-дані постів) у ВордПрес.

 

Recent Posts

Основні завдання болотного екскаватора: де і для чого він використовується

Болотний екскаватор – це спеціалізована техніка, призначена для роботи в умовах підвищеної вологості, на болотистих…

5 днів ago

Чому пластинчасті теплообмінники є оптимальним вибором для промисловості

Промислові системи теплопередачі потребують ефективних, надійних і економічних рішень. Одним із найбільш поширених і технологічно…

5 днів ago

Зигмунд Фрейд

Коли ти помер, ти про це не знаєш. Тільки іншим важко. Те саме, коли ти…

6 днів ago

Підбір ігрового ноутбука для комфортного проходження S.T.A.L.K.E.R 2

Як для людини, яка пройшла кожну з трьох оригінальних ігор серії, і на відносно слабкому…

1 тиждень ago

Як навчитися менеджменту в Україні?

Якщо ви закінчили школу і бажаєте присвятити себе процесу керування бізнесом (будь-якого рівня), тоді перед…

1 тиждень ago

Використання запитів WP_Query у WordPress — 10 практик застосування

В сьогоднішній 10-й, заключній, частині серії уроків по запитам WP_Query у ВордПрес ми нарешті закріпимо…

2 тижні ago