функция
since 2.8.0
wp_set_post_terms()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
wp_set_post_terms( int $post_id, string|array $terms = '', string $taxonomy = 'post_tag', bool $append = false ): array|false|WP_Error
Описание
См. alsowp_set_object_terms()
Оригинал (английский)
Параметры
$post_id
int
необязательный
ID записи. Не принимает по умолчанию ID глобального объекта $post.
$terms
string|array
необязательный
= ''
Массив терминов для установки записи или строка терминов, разделённых запятыми. Для иерархических таксономий всегда нужно передавать ID, а не имена, чтобы не перепутать дочерние термины с одинаковыми именами, но разными родителями.
$taxonomy
string
необязательный
= 'post_tag'
Имя таксономии. Значение по умолчанию 'post_tag'.
$append
bool
необязательный
= false
Если true, существующие термины не удаляются, а только добавляются новые. Если false, термины заменяются новыми.
Возвращаемое значение
array|false|WP_Error
WP_Error
Исходный код
wp-includes/post.php:5712
function wp_set_post_terms( $post_id = 0, $terms = '', $taxonomy = 'post_tag', $append = false ) {
$post_id = (int) $post_id;
if ( ! $post_id ) {
return false;
}
if ( empty( $terms ) ) {
$terms = array();
}
if ( ! is_array( $terms ) ) {
$comma = _x( ',', 'tag delimiter' );
if ( ',' !== $comma ) {
$terms = str_replace( $comma, ',', $terms );
}
$terms = explode( ',', trim( $terms, " \n\t\r\0\x0B," ) );
}
/*
* Hierarchical taxonomies must always pass IDs rather than names so that
* children with the same names but different parents aren't confused.
*/
if ( is_taxonomy_hierarchical( $taxonomy ) ) {
$terms = array_unique( array_map( 'intval', $terms ) );
}
return wp_set_object_terms( $post_id, $terms, $taxonomy, $append );
}
История изменений
| Версия | Описание |
|---|---|
| 2.8.0 | Introduced. |

