wp_delete_term()

Удаляет элемент таксономии. А также его метаданные.

Если термин является родительским для других терминов, то его дочерние элементы будут подвинуты на уровень выше.

Возвращает:

  • 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 );

Источник: Блог Миши Рудрастых

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: