Цей практичний урок буде присвячений розгляду аргументів, які можна використовувати для отримання публікацій певних категорій і тегів з допомогою запиту WP_Query у ВордПрес.
З попередніх частин цієї серії уроків ви дізналися про структуру запиту WP_Query
та деякі його властивості і методи. Також ми перейшли до практичного освоєння та розуміння аргументів, зокрема при отриманні постів, сторінок та публікацій певного типу.
Оскільки у запиті WP_Query
є величезна кількість можливих аргументів, їх розгляд розділений на підтеми. І сьогоднішня тема — це аргументи для отримання з бази даних публікацій на основі їх категорій та тегів. Хоча ці дві таксономії дещо схожі між собою, проте мають деякі відмінності, про які вам потрібно знати.
Почнемо з розгляду параметрів категорії. Ви можете використовувати один з таких варіантів:
cat
(int)category_name
(string)category__and
(array)category__in
(array)category__not_in
(array)
Важливий момент: «небезпечно» використовувати назву категорії, а також її слаг, оскільки це можна в будь-який момент змінити. А ідентифікатор (ID) — це незмінна річ, використання якої дозволить вам уникнути потенційних проблем.
А тепер давайте перейдемо до окремого розгляду кожного з цих параметрів.
cat
аргументів запиту по категоріїПараметр cat
простий: достатньо вказати один ідентифікатор категорії (ID), або ж рядок із ідентифікаторів категорії, як показано нижче:
<?php $args = array( 'cat' => '8' // ID однієї потрібної категорії // якщо потрібно кілька категорій, тоді використовуйте рядок із ID // 'cat' => '5, 6, 7' // ID кількох потрібних категорій — string // якщо потрібно виключити категорію із запиту — поставте перед ID знак мінусу // 'cat' => '9, -10' // щоб виключити категорію під ID 10 ); ?>
Приклад коду вище накаже двигуну «витягти» з бази даних публікації із будь-якої з перелічених категорій. Якщо вам потрібні публікації в кожній із масиву категорій, тоді використовуєте параметр category_and
(про це далі).
Щоб виключити категорію із запиту, використовуйте запис ID категорії у параметрі cat
зі знаком мінус перед ним, як показано в прикладі.
category_name
аргументів запиту по категоріїПараметр category_name
використовує слаг категорії (! не ім’я). Подібним чином до попереднього прикладу ви можете використовувати параметр з окремою категорією або з переліком категорій у рядку:
<?php $args = array( // запит публікацій з однієї категорії: 'category_name' => 'slag-kategoriyi' // слаг потрібної категорії // щоб знайти публікації в кількох категоріях: // 'category_name' => 'slag-kategoriyi, insha-kategoriya, sche-odin-slag' // слаг потрібних категорій ); ?>
category__and
аргументів запиту по категоріїЯкщо вам потрібно публікації в усіх категоріях, використовуйте цей параметр. Сюди потрібно передавати ідентифікатори категорії (ID). Наприклад, щоб знайти публікації в усіх трьох категоріях, ось як може виглядати запис аргументів:
<?php $args = array( // масив потрібних категорій: 'category__and' => array( '7', '8', '9' ) ); ?>
Зауважте наступні моменти: тут використовується масив, а не рядок; у назві параметра два символи підкреслення (риска знизу, андерскор), а не один.
category__in
аргументів запиту по категоріїЦей параметр використовується для пошуку публікацій в одній або кількох із масиву категорій. Так само приймає ідентифікатор категорії в якості значення:
<?php $args = array( // для отримання публікацій в одній або кількох категоріях: 'category__in' => array( '7', '8', '9' ) ); ?>
category__not_in
аргументів запиту по категоріїЯкщо потрібні категорії, окрім вказаних, тоді для вас є параметр category__not_in
— він саме так і працює:
<?php $args = array( // щоб виключити публікації з однієї категорії: 'category__not_in' => '11' // ID однієї категорії для виключення // щоб виключити публікації з масиву (кількох) категорій: // 'category__not_in' => array( '7', '9' ) ); ?>
Параметри тегів схожі, але дещо відрізняються від параметрів категорій:
tag
(string)tag_id
(int)tag__and
(array)tag__in
(array)tag__not_in
(array)tag_slug__and
(array)tag_slug__in
(array)
Тепер приділимо увагу кожному із них.
tag
аргументів запиту по тегуПараметр tag
приймає значення слагу тега (! не назва) і йому можна передати одне або кілька значень у рядку:
<?php $args = array( // щоб знайти публікації лише по одному тегу: 'tag' => 'miy-tag' // слаг одного тегу // знайти публікації по кільком тегам: // 'tag' => 'miy-tag, second-tag, inshiy-tag' // перелічено всі бажані теги (їх слаги) ); ?>
tag_id
аргументів запиту по тегуПараметр tag_id
приймає ідентифікатор тегу (по аналогії із cat
), та може працювати з одним або кількома ID тегів:
<?php $args = array( // щоб знайти публікації по одному тегові: 'tag_id' => '14' // ID одного тегу // щоб знайти публікації по кільком ID тегів: // 'tag_id' => '14, 17, 18' // перелічено всі бажані теги (їх ID) для вибірки // якщо потрібно виключити теги: // 'tag_id' => '14, -17, 18' // тут тег з ID 17 виключено із вибірки ); ?>
tag__in
аргументів запиту по тегуЦей параметр дозволяє знаходити публікації з одним або декількома масивами тегів:
<?php $args = array( // щоб знайти публікації по масиву ID тегів: 'tag_in' => array( '14', '15', '19' ) ); ?>
tag__not_in
аргументів запиту по тегуПараметр tag__not_in
дозволяє «витягати» з бази даних публікації, які не мають заданого тегу чи масиву тегів:
<?php $args = array( // потрібно використовувати масив, навіть якщо тут лише один тег 'tag__not_in' => array( '18' ) // ID тегу для виключення // щоб отримати публікації, що не належать кільком тегам: // 'tag__not_in' => array( '14', '17', '25' ) // масив ідентифікаторів тегів ); ?>
tag_slug__and
та tag_slug__in
аргументів запиту по тегуЦі два параметри поводяться точно так само, як і параметри tag__and
та tag__in
, за винятком того, що тут використовується слаг тегу замість його ідентифікатора:
<?php $args = array( // щоб знайти публікації по будь-якому слагу з масиву тегів: 'tag_slug__in' => array( 'miy-tag', 'second-tag', 'inshiy-tag' ) // щоб знайти публікації, що мають всі перелічені слаги тегів: // 'tag_slug__and' => array( 'miy-tag', 'second-tag', 'inshiy-tag' ) // перелічено всі бажані теги (їх слаги) ); ?>
От і все, тему сьогоднішнього уроку вичерпано. В даному уроці ми розглянули використання параметрів для категорій та тегів в аргументах запиту WP_Query
. Наступний практичний урок серії буде присвячено розгляду параметрам таксономій аргументів запиту у ВордПрес.
Сьогоднішній урок є практичним і слугує ціллю закріпити отримані теоретичні знання з попередніх уроків по…
Продовжуємо серію уроків по роботі з запитами до бази даних WP_Query у ВордПрес. Сьогоднішній урок…
Цим уроком ми продовжуємо серію уроків по роботі з запитами до бази даних WP_Query у…
У сучасному цифровому світі питання безпеки, анонімності та швидкого доступу до інтернет-ресурсів стає дедалі актуальнішим.…
Цей урок є продовженням серії про роботу з запитами до бази даних WP_Query у ВордПрес.…