wp_get_post_terms() WP 2.8.0

Отримує елементи зазначеної таксономії (мітки, рубрики…) з якою пов’язаний зазначений запис.

Для цієї функції за замовчуванням $args встановлюється параметр ‘ field=all‘ (отримати всі поля терміна). Інші значення цього аргументу: names(отримувати тільки назви термінів) та ids(тільки ID термінів).

Замість цієї функції іноді краще використовувати get_the_terms() , т.к. там результат кешується.

Працює на основі:
wp_get_object_terms()
Основа для:
wp_get_post_tags()
1 раз – 0.003903 сек
(дуже повільно) | 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()

Приклади

0

#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
		)
)
*/
0

#2 Теж саме, що у прикладі вище, але тепер отримаємо лише поля name:

$term_list = wp_get_post_terms( 2647, 'post_tag', array('fields' => 'names') );

/* Отримаємо:
Array(
	[0] => Початківцям
	[1] => Теорія
	[2] => Хакі
)
*/
0

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *