wp_remove_object_terms()
Разрывает связь между указанным объектом и указанным термином, т.е. удаляет запись из элемента таксономии (рубрики).
После удаления связи количество записей в термине пересчитывается с помощью wp_update_term_count().
Используйте wp_delete_object_term_relationships(), чтобы удалить сразу все связи объекта с таксономией.
Прямо перед удалением связи срабатывает событие delete_term_relationships и сразу после удаления срабатывает deleted_term_relationships. События передают переменные: $object_id - ID обрабатываемого объекта и $tt_ids - ID терминов таксономий (это не ID термина), связь с которыми разрывается.
Хуки из функции
Возвращает
true|false|WP_Error.
true- если удалось разорвать связь.falseили объектWP_Error- в случае неудачи.
Использование
wp_remove_object_terms( $object_id, $terms, $taxonomy );
- $object_id(число) (обязательный)
- ID объекта, который нужно удалить из терминов. Под объектом подразумевается любая запись: пост, страница, ссылка, произвольный тип записи.
- $terms(строка/массив/число/объект) (обязательный)
ID/ярлык/объект термина из которого будет удаляться указанный в $object_id объект. Можно указать несколько терминов в массиве одновременно.
Если указывается ID, то значение должно быть типа "число", а не строка в виде чила. Например
12а не'12'. Указанные тут значения передаются в term_exists() - подробнее смотрите там.- $taxonomy(строка/массив) (обязательный)
- Название таксономии в которой находятся термины. Можно указать строку или массив строк нескольких таксономий.
Примеры
#1 Удаление метки у поста
Пример, демонстрирующий как удалить запись из термина таксономии:
$post_id = 5;
$terms = 'sweet';
$taxonomy = 'post_tag';
$done = wp_remove_object_terms( $post_id, $terms, $taxonomy );
if( $done ){
echo "Метка записи удалена.";
}
else {
echo "Не удалось удалить метку.";
}
Заметки
- Global. wpdb. $wpdb WordPress database abstraction object.
Список изменений
| С версии 3.6.0 | Введена. |