wp_get_post_terms

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

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

Вместо wp_get_post_terms() возможно лучше использовать get_the_terms(), т.к. там результат кэшируется.
✈ 1 раз = 0.00160с = очень медленно | 50000 раз = 48.7с = очень медленно

Хуков нет.

Возвращает

Массив объектов, список терминов (меток).

Использование

wp_get_post_terms( $post_id, $taxonomy, $args );
$post_id(число)
ID поста.
$taxonomy(строка/массив)
Название таксономии термины которой будут получены.
По умолчанию: “post_tag”
$args(массив)
Массив аргументов. Переписывает аргументы по умолчанию.
По умолчанию: array(‘orderby’ => ‘name’, ‘order’ => ‘ASC’, ‘fields’ => ‘all’)

Примеры

#1. Получим метки поста 2647. Будут получены все поля меток:

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

$term_list будет содержать подобные данные:

$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-includes/post.php

WP 4.7.2

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

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *