WP_DELETE_TERM() │ WP 2.3.0
Функция WP_DELETE_TERM() используется для удаления термина из базы данных в WordPress. Это позволяет удалять категории, теги и другие элементы таксономий.
Что делает функция?
- Удаляет указанный термин из базы данных.
- Если термин является родительским для других терминов, то дочерние термины будут обновлены, чтобы указывать на родителя этого термина.
- Все метаданные, связанные с термином, будут также удалены.
Хуки функции
Функция предоставляет несколько хуков (событий), которые можно использовать для выполнения дополнительных действий в процессе удаления термина:
pre_delete_term— перед удалением терминаedit_term_taxonomies— перед изменением дочерних терминовedited_term_taxonomies— после изменения дочерних терминовdelete_term_taxonomy— при удалении таксономии терминаdeleted_term_taxonomy— после удаления таксономии терминаdelete_term— при удалении терминаdelete_(taxonomy)— для специфичных таксономий (например,delete_category)
Возврат значения
Функция возвращает:
true— если термин успешно удалён.false— если термин не существует.0— если попытка удаления затрагивает стандартную категорию.WP_Error— если таксономия не существует.
Использование функции
Функция вызывается таким образом:
wp_delete_term( $term, $taxonomy, $args );
Параметры:
$term(int) — Обязательный. ID термина.$taxonomy(string) — Обязательный. Имя таксономии.$args(array|string) — Необязательный. Массив аргументов для переопределения стандартного ID термина.
Пример аргументов:
$args = array(
'default' => 15, // ID термина, на который перенаправить объекты
'force_default' => true // Принудительно установить термин как стандартный
);
Примеры использования
Пример 1: Удаление категории продукта WooCommerce
$nonce = $_POST['pro_cat_nonce'] ?? '';
$product_cat_id = (int) ( $_POST['id'] ?? '' );
// Удаляем термин таксономии 'product_cat'
if ( $product_cat_id && $nonce && wp_verify_nonce( $nonce, 'pro_cat_nonce_delete' ) ) {
wp_delete_term( $product_cat_id, 'product_cat' );
}
Пример 2: Удаление термина категории
// Удаляем термин с ID 25, который находится в таксономии 'category'
wp_delete_term( 25, 'category' );
Пример 3: Использование аргументов
// Удаляем термин с ID 25 из "books", при этом все посты перенаправляем на термин с ID 15
wp_delete_term( 25, 'books', [ 'default' => 15, 'force_default' => true ] );
Примечания
- В функции используется глобальный объект
$wpdb, который отвечает за работу с базой данных WordPress.
Изменения
Функция была представлена в версии 2.3.0 WordPress.
Внутренний код функции
Если вас интересует, как работает функция под капотом, вот её реализация:
function wp_delete_term( $term, $taxonomy, $args = array() ) {
global $wpdb;
// Приводим ID термина к целому числу
$term = (int) $term;
// Проверяем, существует ли термин в указанной таксономии
$ids = term_exists( $term, $taxonomy );
if ( ! $ids ) {
return false;
}
if ( is_wp_error( $ids ) ) {
return $ids;
}
// Получаем ID термина таксономии
$tt_id = $ids['term_taxonomy_id'];
// Начинаем удаление...
// ...
return true;
}
Связанные функции
Вот несколько связанных функций для работы с терминами:
category_exists()get_term()get_term_by()get_terms()wp_get_object_terms()
Эти функции помогут вам управлять терминами и таксономиями в WordPress.