Как удалить множественные посты в WordPress через функции и плагины

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

Почему массовое удаление постов полезно и когда оно необходимо

Большое количество ненужных записей замедляет работу сайта, увеличивает базу данных и затрудняет управление контентом. К тому же, при миграциях, обновлениях или смене концепции сайта может потребоваться чистка. Вручную удалять посты долго и неудобно, особенно если их сотни или тысячи. Автоматизация процесса при помощи кода или плагинов — оптимальный путь.

Удаление множественных постов с помощью пользовательской функции

Если у вас есть базовые навыки PHP и доступ к коду сайта (через functions.php или собственный плагин), вы можете создать функцию для массового удаления записей по определённым критериям.

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

function wpstock_delete_posts_by_category($category_slug) {
    $args = [
        'category_name' => $category_slug,
        'posts_per_page' => -1,
        'post_status' => 'any',
        'fields' => 'ids',
    ];
    $posts = get_posts($args);
    if (empty($posts)) {
        return 'Посты для удаления не найдены';
    }
    foreach ($posts as $post_id) {
        wp_delete_post($post_id, true); // true — удаляет без перемещения в корзину
    }
    return count($posts) . ' постов успешно удалены';
}

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

echo wpstock_delete_posts_by_category('news');

Она удалит все записи из категории «news» без возможности восстановления из корзины. Будьте осторожны с параметром $force_delete = true.

Удаление записей по дате

Чтобы удалить записи, опубликованные до определённой даты, используйте следующий пример:

function wpstock_delete_posts_before_date($date) {
    $args = [
        'date_query' => [
            [
                'before' => $date,
                'inclusive' => true,
            ]
        ],
        'posts_per_page' => -1,
        'post_status' => 'any',
        'fields' => 'ids',
    ];
    $posts = get_posts($args);
    if (empty($posts)) {
        return 'Посты для удаления не найдены';
    }
    foreach ($posts as $post_id) {
        wp_delete_post($post_id, true);
    }
    return count($posts) . ' постов удалены';
}

Вызов:

echo wpstock_delete_posts_before_date('2023-01-01');

Массовое удаление постов через плагины

Для тех, кто не хочет работать с кодом, существуют удобные плагины с графическим интерфейсом, позволяющие фильтровать и удалять записи.

1. Bulk Delete

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

Основные преимущества:

  • Фильтрация по множеству условий
  • Удаление запланированных публикаций
  • Возможность настроить автоматическую очистку с расписанием

Скачать и узнать подробности можно на официальной странице плагина.

2. WP Bulk Delete

Альтернатива с похожим функционалом. Поддерживает удаление по таксономиям, мета-полям, статусам и типам записей. Подходит для сайтов с большим количеством контента.

Особенности и рекомендации при массовом удалении

Перед удалением обязательно сделайте полную резервную копию сайта и базы данных. Это позволит восстановиться в случае ошибки.

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

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

Как интегрировать массовое удаление с WPShop и плагинами

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

Для создания пользовательских решений массового удаления можно использовать хук wpstock_delete_posts_by_category в собственных плагинах WPShop или добавить кастомные кнопки в админке через API плагинов.

Итоги и советы

Массовое удаление постов — задача, требующая аккуратности. Применяйте код с проверками, делайте бэкапы и тестируйте на копии сайта. Плагины Bulk Delete и WP Bulk Delete — отличные помощники для быстрого и удобного управления большим количеством записей.

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

Как создать динамическую выводную страницу в WordPress с помощью мета записей
20.11.2025
Как удалить или исключить плагины из загрузки WordPress для оптимизации сайта
03.02.2026
Как создать адаптивный слайдер в WordPress с помощью плагинов и кода
27.12.2025
Отключение оплаты в WooCommerce для товаров с заданным статусом
31.05.2026
Как удалить автоматические черновики в WordPress
24.03.2026