wp_set_object_terms() — привязывает указанный пост к указанным элементам таксономий

Функция позволяет добавить пост в любую указанную рубрику и присвоить ему нужные метки. Также работает с произвольными типами постов и таксономиями.

wp_set_object_terms( $object_id, $terms, $taxonomy, $append = false )

$object_id
(целое) (обязательное) — ID поста.

$terms
(массив|целое|строка) (обязательное) — ID или ярлык элемента таксономии, к которому нужно привязать пост. Можно передавать несколько значений в виде массива. Если указать NULL или пустую строку, то пост будет удален из всех категорий.

Если в качестве значений параметра указан ярлык или массив ярлыков, и при этом таких элементов таксономий не существует — они будут добавлены автоматически.

$taxonomy
(массив|строка) (обязательное) — название (ярлык) таксономии, к элементам которой производится привязка, например category, post_tag или какая-нибудь созданная вами таксономия.

$append
(логическое) — может принимать два значения:

  • true — присвоить объекту новые элементы вдобавок к уже существующим,
  • false — заменить существующие элементы таксономий, в которых находится пост, на новые;

Возвращаемые значения

  • (массив) в случае успеха возвращает массив присвоенных элементов,
  • (WP_Error) в том случае, если указана несуществующая таксономия или произошла ошибка при добавлении в базу данных, возвращает объект WP_Error;

Примеры использования

Добавим пост с 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' );

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

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Миша: Добрый день! В принципе вам только немного нужно доработать код из этого поста - категории уже есть, цена - это и так...

  • eveniy: Добрый день Михаил, подскажите на примере как добавить свои произвольные поля в в вашу форму фильтрации: Я так понимаю...

  • Миша: Отлично! )

  • Дмитрий: сам разобрался: в настройках кастомного типа записи недавно оптимизировал настройки и переоптимизировал: в аргументе 'ta...

  • Дмитрий: У меня по какой-то причине пропало отображение (как в колонке меню слева, так и метабокс в записях ) раздела рубрик для...