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

Удаление устаревшего или неактуального контента — важная задача для поддержания чистоты сайта и оптимизации базы данных WordPress. В этой статье мы подробно рассмотрим, как можно автоматизировать процесс удаления старого контента, используя как готовые плагины, так и собственные решения на PHP. Это позволит снизить нагрузку на сервер, улучшить SEO и упростить управление сайтом.

Почему важно удалять старый контент в WordPress?

С течением времени на сайте накапливаются записи, страницы, отзывы и другие типы контента, которые могут терять актуальность. Хранение большого объёма неактуальных данных замедляет работу базы данных, усложняет навигацию для пользователей и мешает поисковым системам. Автоматизация удаления позволяет:

  • Снизить размер базы данных и ускорить работу сайта.
  • Избавиться от мусорного или нерелевантного контента без ручного контроля.
  • Обеспечить регулярное обновление и чистоту информации.

Автоматическое удаление контента с помощью плагинов

Плагин «WP Auto Delete Posts»

Один из наиболее простых и функциональных плагинов — WP Auto Delete Posts. Он позволяет настроить автоматическое удаление записей по разным критериям: по дате публикации, по статусу, по категории и даже по пользовательским полям.

Основные возможности:

  • Настройка времени жизни записей (например, удалять записи старше 6 месяцев).
  • Фильтрация по типу записи (посты, страницы, кастомные типы).
  • Логирование удалённых записей для контроля.

Пример настройки плагина WP Auto Delete Posts

После установки перейдите в Настройки –> WP Auto Delete Posts, укажите типы записей, критерии и период жизни. Например, чтобы удалять все записи старше 180 дней, установите «Days to keep» в 180 и выберите нужные типы записей.

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

Если вы хотите реализовать более тонкий и кастомный механизм удаления, можно написать собственный код, который будет запускаться по расписанию с помощью WP-Cron.

Создание функции удаления старых записей

Ниже пример функции wptem_delete_old_posts(), которая удаляет записи старше 90 дней:

function wptem_delete_old_posts() {
    $args = array(
        'post_type'      => 'post',
        'post_status'    => 'publish',
        'date_query'     => array(
            array(
                'before' => '90 days ago',
            ),
        ),
        'fields'         => 'ids',
        'posts_per_page' => -1,
    );
    $old_posts = get_posts($args);

    if (!empty($old_posts)) {
        foreach ($old_posts as $post_id) {
            wp_delete_post($post_id, true); // true - без перемещения в корзину
        }
    }
}

Регистрация задачи в WP-Cron

Чтобы функция запускалась автоматически, зарегистрируем событие, например, раз в сутки:

function wptem_schedule_old_post_deletion() {
    if (!wp_next_scheduled('wptem_daily_old_post_deletion')) {
        wp_schedule_event(time(), 'daily', 'wptem_daily_old_post_deletion');
    }
}
add_action('wp', 'wptem_schedule_old_post_deletion');

add_action('wptem_daily_old_post_deletion', 'wptem_delete_old_posts');

Такой код можно добавить в файл functions.php активной темы или в отдельный плагин.

Удаление старых кастомных типов записей и мета-данных

Для сайтов с кастомными типами записей (например, отзывы, события, товары) процесс удаления может требовать дополнительных условий. Рассмотрим, как адаптировать функцию под кастомные типы.

function wptem_delete_old_custom_posts($post_type = 'review', $days = 60) {
    $args = array(
        'post_type'      => $post_type,
        'post_status'    => 'publish',
        'date_query'     => array(
            array(
                'before' => "$days days ago",
            ),
        ),
        'fields'         => 'ids',
        'posts_per_page' => -1,
    );
    $old_posts = get_posts($args);

    if (!empty($old_posts)) {
        foreach ($old_posts as $post_id) {
            // Можно добавить проверку мета-данных
            $meta_value = get_post_meta($post_id, 'wptem_special_flag', true);
            if ($meta_value !== 'keep') {
                wp_delete_post($post_id, true);
            }
        }
    }
}

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

Комбинирование с плагином Clearfy для оптимизации базы данных

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

Clearfy предлагает удобный интерфейс для удаления старых записей и автоматической очистки, что дополнит ваше кастомное решение или работу плагина WP Auto Delete Posts.

Рекомендации и предосторожности

При автоматическом удалении контента важно:

  • Обязательно создавать резервные копии сайта и базы данных перед настройкой автоматических удалений.
  • Тестировать код и настройки на тестовом сайте, чтобы избежать случайной потери нужной информации.
  • Регулярно проверять логи удаления или уведомления, чтобы контролировать процесс.
  • Использовать мягкое удаление (перемещение в корзину) на первых этапах, чтобы можно было восстановить ошибочно удалённый контент.

Заключение

Автоматизация удаления старого контента в WordPress — важный шаг для поддержания чистоты и производительности сайта. Используйте готовые плагины, если хотите быстро настроить процесс, или пишите собственные решения для более точного контроля. Комбинируйте эти методы с оптимизацией базы данных через Clearfy или другие инструменты, чтобы добиться максимальной эффективности.

Для начала рекомендую установить WP Auto Delete Posts и попрактиковаться с настройками. Если понадобятся кастомные решения — используйте примеры кода из статьи и адаптируйте их под свои задачи.

WooCommerce: автоматическое удаление неактивных корзин и заказов
11.05.2026
Как создать свой шорткод в WordPress: практические примеры и советы
13.11.2025
Автоматическое изменение robots.txt в WordPress: практические решения и примеры кода
11.04.2026
WooCommerce: автоматическое удаление неактивных корзин и заказов
02.06.2026
WooCommerce: автоматическое возврат средств после отмены заказа
07.05.2026