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