Сьогоднішня частина серії уроків по запитам 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
— включати.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 або мета-дані постів) у ВордПрес.
Болотний екскаватор – це спеціалізована техніка, призначена для роботи в умовах підвищеної вологості, на болотистих…
Промислові системи теплопередачі потребують ефективних, надійних і економічних рішень. Одним із найбільш поширених і технологічно…
Як для людини, яка пройшла кожну з трьох оригінальних ігор серії, і на відносно слабкому…
Якщо ви закінчили школу і бажаєте присвятити себе процесу керування бізнесом (будь-якого рівня), тоді перед…
В сьогоднішній 10-й, заключній, частині серії уроків по запитам WP_Query у ВордПрес ми нарешті закріпимо…