wp_get_post_terms() WP 2.8
Получает элементы указанной таксономии (метки, рубрики ...) с которой связана указанная запись.
Для этой функции по умолчанию в $args
устанавливается параметр 'field=all' (получить все поля термина). Другие значения этого аргумента: names (получать только названия терминов) и ids (только ID терминов ).
Вместо этой функции иногда лучше использовать get_the_terms(), т.к. там результат кэшируется.
wp_get_post_tags()
wp_get_object_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. Получим метки поста 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 ) */
Список изменений
С версии 2.8.0 | Введена. |
Код wp get post terms:
wp-includes/post.php
WP 5.3
Cвязанные функции
Из раздела: Для записей
- get_object_taxonomies()
- get_objects_in_term()
- get_the_category()
- get_the_category_list()
- get_the_tag_list()
- get_the_tags()
- get_the_taxonomies()
- get_the_term_list()
- get_the_terms()