Функция позволяет добавить пост в любую указанную рубрику и присвоить ему нужные метки. Также работает с произвольными типами постов и таксономиями.
wp_set_object_terms( $object_id, $terms, $taxonomy, $append = false )
$object_id
(целое) (обязательное) — ID поста.
$terms
(массив|целое|строка) (обязательное) — ID или ярлык элемента таксономии, к которому нужно привязать пост. Можно передавать несколько значений в виде массива. Если указать NULL
или пустую строку, то пост будет удален из всех категорий.
Если в качестве значений параметра указан ярлык или массив ярлыков, и при этом таких элементов таксономий не существует — они будут добавлены автоматически.
$taxonomy
(массив|строка) (обязательное) — название (ярлык) таксономии, к элементам которой производится привязка, например category
, post_tag
или какая-нибудь созданная вами таксономия.
$append
(логическое) — может принимать два значения:
Возвращаемые значения
Примеры использования
Добавим пост с ID=541 в рубрику WordPress (например ID=5, ярлык=wordpress), первый вариант:
wp_set_object_terms( 541, 5, 'category' );
Второй вариант:
$terms = wp_set_object_terms( 541, 'wordpress', 'category' );
Добавление поста в несколько рубрик при помощи массива:
wp_set_object_terms( 541, array('jquery', 'wordpress'), 'category' );
Теперь сделаем так, чтобы этот наш пост не находился ни в одной рубрике:
wp_set_object_terms( 541, NULL, 'category' );
Пример с произвольной таксономией:
wp_set_object_terms( get_the_id(), array('gta-vice-city', 'crysis-3'), 'game' );