wp_get_post_terms()
Отримує елементи зазначеної таксономії (мітки, рубрики…) з якою пов’язаний зазначений запис.
Для цієї функції за замовчуванням $args встановлюється параметр ‘ field=all‘ (отримати всі поля терміна). Інші значення цього аргументу: names(отримувати тільки назви термінів) та ids(тільки ID термінів).
Замість цієї функції іноді краще використовувати get_the_terms() , т.к. там результат кешується.
Працює на основі:
wp_get_object_terms()
wp_get_object_terms()
Основа для:
wp_get_post_tags()
wp_get_post_tags()
1 раз – 0.003903 сек
(дуже повільно) | 50000 разів – 9.43 сек
(швидко) |
PHP 7.1.2, WP 4.8
(дуже повільно) | 50000 разів – 9.43 сек
(швидко) |
PHP 7.1.2, WP 4.8
Хуків немає.
Повертає
Массив|WP_Error.
array( WP_Term, WP_Term )– Масив об’єктів (список термінів), коли вдалося отримати.array()— Порожній масив, коли термінів запису немає.WP_Error— WP_Error, якщо таксономії немає.
Використання
wp_get_post_terms( $post_id, $taxonomy, $args );
- $post_id
(число) - ID посту.
За замовчуванням: 0 (поточний пост) - $taxonomy
(рядок/масив) - Назва таксономії терміни якої будуть отримані.
Типово: “post_tag” - $args
(масив) Масив аргументів. Переписує аргументи за промовчанням.
fields (string)
Які поля терміну потрібно одержати. Може бути:all– Отримати всі поля.names– Отримати тільки назви.ids– отримати лише ID.
Default: ‘all’
З WP 4.7, можна вказувати всі параметри функції wp_get_object_terms()
Повний перелік параметрів дивіться також у описі WP_Term_Query::__construct() .
За замовчуванням: array()
Приклади
#1 Отримаємо мітки посту 2647. Будуть отримані всі поля міток:
$term_list = wp_get_post_terms( 2647, 'post_tag', array('fields' => 'all') );
/*
$term_list міститиме такі дані:
Array(
[0] => stdClass Object(
[term_id] => 44
[name] => Початківцям
[slug] => for_newbie
[term_group] => 0
[term_taxonomy_id] => 44
[taxonomy] => post_tag
[description] =>
[parent] => 0
[count] => 7
)
[1] => stdClass Object(
[term_id] => 48
[name] => Теорія
[slug] => теорія
[term_group] => 0
[term_taxonomy_id] => 49
[taxonomy] => post_tag
[description] =>
[parent] => 0
[count] => 5
)
[2] => stdClass Object(
[term_id] => 12
[name] => Хакі
[slug] => haki
[term_group] => 0
[term_taxonomy_id] => 12
[taxonomy] => post_tag
[description] =>
[parent] => 0
[count] => 10
)
)
*/#2 Теж саме, що у прикладі вище, але тепер отримаємо лише поля name:
$term_list = wp_get_post_terms( 2647, 'post_tag', array('fields' => 'names') );
/* Отримаємо:
Array(
[0] => Початківцям
[1] => Теорія
[2] => Хакі
)
*/#3 Теж саме, що на прикладі вище, але тепер отримаємо тільки поля ids:
$term_list = wp_get_post_terms( 2647, 'post_tag', array('fields' => 'ids') );
/*
У результаті отримаємо:
Array
(
[0] => 44
[1] => 48
[2] => 12
)
*/
список змін
| З версії 2.8.0 | Введено. |
Код wp_get_post_terms() wp get post terms WP 6.0.2
function wp_get_post_terms( $post_id = 0, $taxonomy = 'post_tag', $args = array() ) {
$post_id = (int) $post_id;
$defaults = array( 'fields' => 'all' );
$ args = wp_parse_args ($ args, $ defaults);
$tags = wp_get_object_terms( $post_id, $taxonomy, $args );
return $tags;
}