Підступна війна росії проти України. Орієнтовні втрати ворога
(станом на 05.03.2025)
880660
осіб
370
літаків
331
гелікоптерів
10256
танків
21304
ББМ
24087
артилерія
1094
ППО
1306
РСЗВ
39512
машин
28
кораблі і катери
Використання запитів WP_Query у WordPress — частина 9 (аргументи для мета-даних)
Опубліковано

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

 

 

В сьогоднішній частині з серії уроків по запитам WP_Query у ВордПрес ми будемо розглядати аргументи, які можна використовувати для отримання публікацій по кастомним полям (спеціальним полям, метабоксам довільних полів), або ж мета-даним.

 

Що таке мета-дані публікацій в CMS WordPress?

З допомогою цього функціоналу ви можете додавати розширені дані, параметри, тощо для різних таксономій сайту, включаючи публікації, сторінки, категорії, теги, коментарі і тому подібне. Ці дані можуть бути практично любого допустимого формату (текст, чекбокс, поле вибору, дата і т.д.). А поля, у яких можна додавати ці дані, мають різні назви, а саме: кастомні поля (custom fields), довільні поля, додаткові поля або ж просто мета-дані.

У WordPress є три основні типи метаданих, що зберігаються окремо у базі даних та з якими працюють наступні класи: мета публікацій (клас WP_Query), мета користувачів (клас WP_User_Query) та мета коментарів (клас WP_Comment_Query). Якщо вам потрібно використовувати лише аргументи метаданих публікації у своєму запиті (без інших аргументів), вам достатньо буде використовувати клас WP_Meta_Query, який є «допоміжним класом» для WP_Query при фільтрації по метаданим. Він генерує необхідний SQL запит для пошуку по мета-даним. Але основна робота «лягає на плечі» саме класу WP_Query.

 

Параметри аргументів запиту для отримання публікацій по мета-даним

Отже, як ви бачите, функціонал метаданих публікацій додатково керується окремим класом під назвою WP_Meta_Query. Це означає, що якщо вам потрібні публікації лише по їх метаданих, тоді у вас на вибір є ці два класи: WP_Meta_Query або WP_Query (який також має доступ до класу WP_Meta_Query). Основна відмінність між цим класом та WP_Query полягає в тому, що з першим ви можете створювати прості запити та фільтрації на основі аргументів мета-даних.

Сьогодні будемо розглядати використання саме класу WP_Query, щоб сформувати запит публікацій по їх мета-даних. А до основних аргументів та параметрів належать такі:

  • ключ мета-поля: meta_key (string)
  • значення мета-поля: meta_value (string)
  • значення (числове) мета-поля: meta_value_num (number)
  • оператор для умовної перевірки мета-поля 'meta_value': meta_compare (string). Можливі значення: ‘=‘ (значення за замовчуванням), ‘!=‘, ‘>‘, ‘>=‘, ‘<‘, ‘<=‘, ‘LIKE‘, ‘NOT LIKE‘, ‘IN‘, ‘NOT IN‘, ‘BETWEEN‘, ‘NOT BETWEEN‘, ‘NOT EXISTS‘, ‘REGEXP‘, ‘NOT REGEXP‘ або ‘RLIKE‘.

 

З цими параметрами ви можете сформувати простий запит мета-поля, наприклад, так:

<?php
$args = array(
  // щоб отримати публікації із мета-полем по ключу key1 (незалежно від його значення):
  'meta_key' => 'key1'
  // якщо потрібне конкретне значення, додайте відповідний аргумент у запит:
  // 'meta_value' => 'value1'
  // ! можна використовувати навіть запит лише по значенню, незалежно від ключа
);
?>

 

Параметри аргументів запиту для отримання публікацій з використанням аргументу meta_compare

Ви вже помітили в переліку вище, що існує багато умовних параметрів для аргументу meta_compare, що не лише розширює, але й трохи ускладнює їх використання. Тому давайте розглянемо лише найчастіше використовувані:

  • Параметр дорівнює: =. Це значення за замовчуванням
  • Параметр не дорівнює: !=
  • Параметр більше ніж: >. Менше ніж: <
  • Параметр більше або дорівнює: >=. Параметр менше або дорівнює: <=
  • Параметр LIKE для знаходження значення, подібного до пошукового: можна використовувати разом з символами узагальнення; ігнорує регістр значення

А далі розглянемо деякі практичні приклади використання цього аргументу.

Наприклад, щоб виключити мета-поля із певним значенням ключа, скористайтеся кодом наступного виду:

<?php
$args = array(
  // пошук за виключенням одного ключа
  'meta_key' => 'key1',
  'meta_compare' => '!=' // параметр не дорівнює
  // якщо потрібно виключити масив ключів, тоді використовуйте наступне поєднання параметрів
  // 'meta_key' => 'key1, key2',
  // 'meta_compare' => 'NOT IN' // параметр виключення з масиву
);
?>

 

В запиті ви можете використовувати як числові, так і нечислові значення. Наприклад, якщо у вас магазин на WordPress (WooCommerce), і вам потрібно знайти товари по ціні у межах 1500-1750 грн, ось як це може виглядати:

<?php
$args = array(
  'meta_key' => 'someprodprice', // якщо товар має мета-поле з таким ключем
  // і має наступне значення (можливо і масив значень)
  'meta_value' => array (
    '1500',
    '1750'
  ),
  // використання параметру, який дозволяє порівняти два числових значення у діапазоні
  'meta_compare' => 'BETWEEN'
);
?>

 

Якщо вам потрібно сформувати запит з використанням кількох кастомних полів (чи кількох умовних операторів), тоді скористайтеся вкладеним(и) масивом(вами). Це стало можливим починаючи з WordPress версії 4.1.

 

 

Ось і все на сьогодні. Ми розглянули використання класу WP_Query для запиту публікацій по їх метаданих (або користувальницьких полях). Це повинно дати вам велику гнучкість при роботі із цим популярним двигуном та використовуваною базою даних.

В наступному (заключному) уроці ми підіб’ємо теоретичні підсумки по всім урокам та розглянемо кілька практичних прикладів застосування отриманих знань.

 

 

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

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


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