WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Шаблоны сайтов на русском

wp_get_post_terms() WP 2.8

Получает элементы указанной таксономии (метки, рубрики ...) с которой связана указанная запись.

Для этой функции по умолчанию в $args устанавливается параметр 'field=all' (получить все поля термина). Другие значения этого аргумента: names (получать только названия терминов) и ids (только ID терминов ).

Вместо этой функции иногда лучше использовать get_the_terms(), т.к. там результат кэшируется.

Является основой для: wp_get_post_tags()
Работает на основе: wp_get_object_terms()
✈ 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, можно указывать все параметры функции get_terms(). До 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] => teoriya
			[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
)
*/

Код wp get post terms: wp-includes/post.php VER 5.1.1

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

Cвязанные функции

Из раздела: Для записей

Видео

в этом архиве видео есть еще

mixporn24.com

Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться