Підступна війна росії проти України. Орієнтовні втрати ворога
(станом на 20.02.2025)
863580
осіб
370
літаків
331
гелікоптерів
10134
танків
21112
ББМ
23410
артилерія
1078
ППО
1291
РСЗВ
37961
машин
28
кораблі і катери
Використання запитів WP_Query у WordPress — частина 7 (аргументи для отримання категорій, тегів)
Опубліковано

Використання запитів WP_Query у WordPress — частина 7 (аргументи для отримання категорій, тегів)

 

 

Цей практичний урок буде присвячений розгляду аргументів, які можна використовувати для отримання публікацій певних категорій і тегів з допомогою запиту 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. Наступний практичний урок серії буде присвячено розгляду параметрам таксономій аргументів запиту у ВордПрес.

 

 

Напишіть тут свою думку/питання

Ваша пошта не публікуватиметься. Обов’язкові поля позначені *


Швидкий доступ по сайту SebWeo
Пригости мене кавою