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 | Введена. |