wp_get_post_terms()
Получает элементы указанной таксономии (метки, рубрики ...) с которой связана указанная запись.
Для этой функции по умолчанию в $args устанавливается параметр 'field=all' (получить все поля термина). Другие значения этого аргумента: names (получать только названия терминов) и ids (только ID терминов ).
Вместо этой функции иногда лучше использовать get_the_terms(), т.к. там результат кэшируется.
Хуков нет.
Возвращает
Массив|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 Тоже самое, что в примере выше, но теперь получим только поля name:
$term_list = wp_get_post_terms( 2647, 'post_tag', array('fields' => 'names') );
/* получим:
Array(
[0] => Новичкам
[1] => Теория
[2] => Хаки
)
*/ #2 Тоже самое, что в примере выше, но теперь получим только поля ids:
$term_list = wp_get_post_terms( 2647, 'post_tag', array('fields' => 'ids') );
/*
В итоге получим:
Array
(
[0] => 44
[1] => 48
[2] => 12
)
*/ #3 Получим метки поста 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.8.0 | Введена. |
Код wp_get_post_terms() wp get post terms WP 7.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;
}