SebWeo
Сьогоднішня частина серії уроків по запитам 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 або мета-дані постів) у ВордПрес.
WordPress роками був неперевершеним "монолітом": він відповідав і за зручну адмін-панель, і за збереження даних,…
У світі веб-серверів часто говорять про протистояння Nginx vs Apache. Але що, якби я сказав…
Коли я починав свій шлях у веб-розробці, питання "який веб-сервер використовувати?" практично не стояло. Відповідь…
Коли мова заходить про веб-сервери, два імені завжди на слуху: Apache та Nginx. Apache —…
У світі веб-розробки ми постійно стикаємося з проблемою: "А в мене на комп'ютері все працює!".…
На зорі моєї кар'єри веб-розробника все було відносно просто: встановив локальний сервер (пам'ятаєте Denwer?), поклав…