Удаляет элемент таксономии. А также его метаданные.
Если термин является родительским для других терминов, то его дочерние элементы будут подвинуты на уровень выше.
Возвращает:
true
– удаление прошло успешно,false
– указанных терминов не существует,0
– если была попытка удалить категорию по умолчанию, термин по умолчанию.
wp_delete_term( $term, $taxonomy, $args = array() )
Параметры
- $term
- (целое) ID элемента таксономии, который нужно удалить.
- $taxonomy
- (строка) Название таксономии, к которой относится термин.
- $args
- (массив)
- default
- (целое) Укажите ID термина, в который мы должны поместить посты удаляемого термина.
- force_default
- (логическое)
false
(по умолчанию) – посты удаляемого термина будут помещены в термин default только, если у них больше нет терминов (кроме удаляемого).true
– посты удаляемого термина будут помещены в термин default в любом случае.
Пример
// Попробуем удалить рубрику с ID = 25 if( wp_delete_term( 25, 'category' ) ) { echo 'Удаление прошло ОК'; } else { echo 'Либо рубрики не существует, либо это основная рубрика в Настройки > Написание'; }
Также можем проапгрейдить наш пример, поместив все посты из удаляемой рубрики с ID=25 в рубрику с ID=5.
if( wp_delete_term( 25, 'category', array( 'default' => 5, 'force_default' => true ) ) ) {
Хуки
Не знаете, как работать с хуками?
pre_delete_term
Запускается непосредственно перед удалением термина.
С версии 4.1.0
do_action( 'pre_delete_term', $term, $taxonomy );
edit_term_taxonomies
Запускается непосредственно перед тем, как функция начнёт обрабатывать дочерние элементы удаляемого термина. Не срабатывает для таксономий без иерархии.
С версии 2.9.0
do_action( 'edit_term_taxonomies', $edit_tt_ids );
edited_term_taxonomies
Запускается непосредственно после того, как функция обработает дочерние элементы удаляемого термина. Не срабатывает для таксономий без иерархии.
С версии 2.9.0
do_action( 'edited_term_taxonomies', $edit_tt_ids );
delete_term_taxonomy
Запускается непосредственно перед удалением данных термина из таблицы wp_term_taxonomy
.
С версии 2.9.0
do_action( 'delete_term_taxonomy', $tt_id );
deleted_term_taxonomy
Запускается непосредственно после удаления данных термина из таблицы wp_term_taxonomy
.
С версии 2.9.0
do_action( 'deleted_term_taxonomy', $tt_id );
delete_term
Срабатывает в самом конце – после полного удаления элемента таксономии и очистки кэша
С версии 2.5.0
do_action( 'delete_term', $term, $tt_id, $taxonomy, $deleted_term, $object_ids );
delete_{$taxonomy}
Срабатывает в самом конце – после полного удаления элемента таксономии и очистки кэша.
С версии 2.5.0
do_action( "delete_{$taxonomy}", $term, $tt_id, $deleted_term, $object_ids );
Источник: Блог Миши Рудрастых