Как удалить категорию со всеми записями в WordPress: эффективные методы и примеры кода

Иногда возникает задача не просто удалить категорию в WordPress, а удалить категорию вместе со всеми записями, которые к ней относятся. Стандартный функционал WordPress не позволяет сделать это одним кликом: при удалении категории записи сохраняются и переходят в категорию по умолчанию или без категории. В этой статье мы рассмотрим, как удалить категорию со всеми ее записями программно и с помощью плагинов.

Почему просто удаление категории не удаляет записи?

В WordPress категории — это таксономии, которые связаны с записями. Удаление категории по умолчанию не трогает записи — они остаются в базе данных и получают категорию по умолчанию (обычно «Без категории»). Это сделано для сохранения контента и предотвращения потери данных из-за случайного удаления категорий.

Однако иногда нужно удалить и все записи, привязанные к категории, например, при очистке сайта от устаревшего контента или при реорганизации структуры.

Удаление категории со всеми записями через код

Для решения задачи можно написать кастомный PHP-скрипт или функцию, которую удобно запускать через плагин Code Snippets или в файле functions.php вашей темы.

Основная идея — получить ID категории, затем найти все записи, которые к ней относятся, и удалить эти записи, после чего удалить саму категорию.

Пример функции для удаления категории со всеми записями

function wplesson_delete_category_with_posts($cat_slug) {
    $category = get_category_by_slug($cat_slug);
    if (!$category) {
        return 'Категория не найдена';
    }
    $cat_id = $category->term_id;

    // Получаем все записи категории
    $posts = get_posts(array(
        'category' => $cat_id,
        'numberposts' => -1,
        'post_status' => 'any'
    ));

    // Удаляем все записи
    foreach ($posts as $post) {
        wp_delete_post($post->ID, true); // true — без возможности восстановления
    }

    // Удаляем категорию
    wp_delete_category($cat_id);

    return 'Категория и все записи удалены успешно';
}

Вызывайте функцию с слагом нужной категории, например:

echo wplesson_delete_category_with_posts('novosti');

Рекомендуется использовать эту функцию аккуратно и только при уверенности, что данные можно удалить безвозвратно.

Удаление категории и записей через WP-CLI

Если у вас есть доступ к консоли сервера и установлен WP-CLI, задача значительно упрощается. WP-CLI позволяет управлять записями и таксономиями через командную строку.

Для удаления всех записей категории и самой категории используйте следующий сценарий:

# Получаем ID категории по слагу
cat_id=$(wp term list category --field=term_id --slug=novosti)

# Получаем ID всех записей категории
post_ids=$(wp post list --category=$cat_id --field=ID)

# Удаляем записи
for id in $post_ids; do
  wp post delete $id --force
 done

# Удаляем категорию
wp term delete category $cat_id
<

WP-CLI очень удобен, если нужно удалить много данных быстро и без риска ошибок в коде.

Плагины для удаления категорий с записями

Готовых плагинов, которые удаляют категорию и все записи внутри, на рынке немного, поскольку это опасная операция. Но можно использовать универсальные плагины для массового управления записями и таксономиями:

  • Bulk Delete — позволяет удалять записи по разным параметрам, включая категории. Можно настроить массовое удаление записей категории, а затем вручную удалить категорию.
  • WP Bulk Delete — расширенный инструмент для массового удаления постов с возможностью фильтрации по таксономиям, датам, статусам.

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

Советы по безопасности при удалении данных

Удаление записей и таксономий — операция необратимая, особенно при использовании wp_delete_post( ..., true ). Поэтому:

  • Перед удалением сделайте полную резервную копию базы данных.
  • Проверьте правильность ID или слага категории, чтобы случайно не удалить не тот контент.
  • Если у вас многопользовательская среда — ограничьте доступ к функциям удаления.

Выводы и рекомендации

Удалить категорию вместе со всеми записями можно несколькими способами: через код, WP-CLI или плагины. Самый надежный и контролируемый — через кастомный код с проверками. WP-CLI отлично подходит для администраторов с доступом к серверу. Плагины дают удобный интерфейс, но требуют внимательности.

Для упрощения управления категориями и записями рекомендуем использовать плагин Bulk Delete с официального магазина WPSHOP.ru.

Как избежать проблем с кэшированием в WordPress: практические советы
05.04.2026
Использование хука WooCommerce checkout_process для дополнительной проверки при оформлении заказа
04.06.2026
Как использовать WPCommunity для создания форума на WordPress
02.01.2026
Как исключить конфликт AJAX при создании каскадного выбора в WooCommerce
01.05.2026
Как отключить автозагрузку изображений в WordPress для ускорения сайта
13.04.2026