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; }