Функція WP get_terms()

При розробці сайтів на WordPress інколи потрібно отримати всі елементи (терміни) зазначеної таксономії.

get_terms () використовується в wp_get_nav_menus (), get_tags (), get_all_category_ids (), get_categories ().
Повертає

Масив об’єктів, що містять в собі дані про елементи таксономії.
Якщо терміни не знайдені, то поверне порожній масив – array ().
Поверне об’єкт WP_Error, якщо будь-яка з зазначених таксономій не існує.
Якщо аргумент fields встановлений в count, то поверне кількість знайдених термінів у вигляді рядка.

Використання

Шаблон використання

$ Taxonomies (рядок / масив) (обов’язковий)

Таксономії, елементи яких потрібно отримати. Можна вказати одну таксономию “my_tax” або декілька arra (‘category’, ‘tax2’).

$ Args (рядок / масив)

Аргументи, відповідно до яких буде отриманий результат.

Аргументи параметра $ args

number (число)

Максимальна кількість елементів, які будуть отримані. Ліміт. За замовчуванням – все.
За замовчуванням: 0

offset (число)

Верхній відступ у запиті. Скільки перших елементів пропустити. Вказувати потрібно число. За замовчуванням без відступів.
За замовчуванням: 0

orderby (рядок)

Поле за яким сортувати результат. Може бути:

id – по ID – За умовчанням;
count – по кількості записів;
name – за назвою;
slug – по альтернативному назві;
term_group – по групі;
none – НЕ сортувати.

За замовчуванням: “id”

order (рядок)

Напрям сортування, зазначеної в параметрі “orderby”:

ASC – по порядку, від меншого до більшого (1, 2, 3; a, b, c);
DESC – у зворотному порядку, від більшого до меншого (3, 2, 1; c, b, a).

За замовчуванням: “ASC”

hide_empty (логічний)

Чи приховувати терміни в яких немає записів. 1 (true) – приховувати порожні, 0 (false) – показувати порожні.
За замовчуванням: true

fields (рядок)

Які поля повертати в кінцевому масиві. Може бути:

all – Повернути масив об’єктів (всі дані) – за умовчанням;
ids – повернути масив чисел;
names – повернути масив рядків.
count – (3.2+) повертає кількість знайдених термінів.
id => parent – повернути масив, де ключ = ID терміна, а значення = ID батьківського терміна.
id => slug – повернути масив, де ключ = ID терміна, а значення = складаючи (назва для УРЛ) терміна.
id => name – повернути масив, де ключ = ID терміна, а значення = назва (ім’я) терміна.

За замовчуванням: ‘all’

slug (рядок)

Повернути терміни, альтернативна назва (slug) яких збігається c зазначеної рядком.
За замовчуванням: ‘ ‘

hierarchical (логічний)

Чи включати до результат терміни, які мають не порожні дочірні терміни (в яких є записи). Тобто в масив будуть включені порожні терміни, якщо у з дочірніх термінах є записи, навіть якщо аргумент ‘hide_empty’ дорівнює true.
true – так, включити;
false – ні, не включати.
За замовчуванням: true

name__like (рядок)

Показати терміни назва яких збігається з цим аргументом.
За замовчуванням: ‘ ‘

pad_counts (логічний)

Якщо передати true, то число яке показує кількість записів в батьківських категоріях буде сумою своїх записів і записів з дочірніх категорій. За замовчуванням підраховуються тільки свої записи.
За замовчуванням: false

get (рядок)

За замовчуванням порожній рядок. Дозволяє перезаписувати аргументи ‘hide_empty’ і ‘child_of’. Для цього потрібно встановити “all” для цього параметра.
За замовчуванням: ‘ ‘

child_of (число)

ID батьківського терміна. Вивести елементи таксономії, які є дочірніми розділами зазначеного елемента. Будуть отримані всі рівні вкладеності, все дерево.
За замовчуванням: ‘ ‘

parent (число)

ID батьківського терміна. Вивести терміни батьком яких є зазначений термін, тобто будуть отриманий тільки перший рівень вкладеності, а не все дерево як в параметрі child_of. Якщо вказати 0, то будуть виведені терміни верхнього рівня. За замовчуванням порожній рядок.
За замовчуванням: ‘ ‘

exclude (рядок / масив)

Масив ID термінів, які потрібно виключити. Також можна вказати рядок у вигляді розділених комами ID.
За замовчуванням: ”

exclude_tree (масив)

Масив ID батьківських термінів, які потрібно виключити. Виключена буде вся гілка.
За замовчуванням: ‘ ‘

include (масив)

Масив з ID термінів, які потрібно включити у вибірку. Якщо вказати цей параметр, то багато інших стануть марними.
За замовчуванням: ‘ ‘

search (рядок)

Пошук по назвах терміна і його складаючи. Отримає терміни в назвах яких є входження зазначеної тут рядка. Тобто запит виглядає так: LIKE ‘% search_string%’.
За замовчуванням: ‘ ‘

cache_domain (рядок)

Дозволяє встановити унікальні ключ кешу, який буде використовуватися в get_terms () при об’єктному кешуванні (object cache). Наприклад, якщо ви використовується один з фільтрів get_terms (), щоб змінити запит (наприклад ‘terms_clausses’), встановивши ‘cache_domain’ в унікальне значення, дозволити не перезаписувати збережений кеш для однакових запитів.
За замовчуванням: ‘core’

Приклади

Отримаємо масив даних про всі категорії на сайті

Дані в масиві будуть відсортовані за кількістю записів (orderby = count) у кожній категорії. Категорії у яких немає записів все одно будуть включені в масив (hide_empty = 0).

Отримаємо всі розділи посилань:

Примітка

Використовує фільтр ‘get_terms’, коли потрібний термін знайдений в кеші. Фільтр спрацьовує для кожного терміна, до того як він потрапить в підсумковий масив.
Використовує фільтр ‘list_terms_exclusions’, який фільтрує підсумковий результат, враховуючи аргументи параметра $ args