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

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

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

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

  • Увеличению размера базы данных и медленной работе сайта.
  • Проблемам с SEO из-за дублирующегося или нерелевантного контента.
  • Сложностям в управлении контентом.

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

Автоматическое удаление старых записей с помощью WPKeys_delete_old_posts

Для удаления старых постов можно создать функцию, которая будет запускаться по расписанию через WP-Cron. Например, удалять записи старше 1 года.

function wpkeys_delete_old_posts() {
    $args = array(
        'post_type'      => 'post',
        'post_status'    => 'publish',
        'date_query'     => array(
            array(
                'before' => '1 year 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 — удаление без перемещения в корзину
        }
    }
}

// Запускаем функцию ежедневно
if (!wp_next_scheduled('wpkeys_daily_delete_old_posts')) {
    wp_schedule_event(time(), 'daily', 'wpkeys_daily_delete_old_posts');
}
add_action('wpkeys_daily_delete_old_posts', 'wpkeys_delete_old_posts');

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

Удаление старых ревизий: оптимизация базы данных

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

function wpkeys_delete_old_revisions() {
    global $wpdb;
    $days = 30; // удаляем ревизии старше 30 дней
    $date = date('Y-m-d H:i:s', strtotime("-{$days} days"));

    $revisions = $wpdb->get_results($wpdb->prepare(
        "SELECT ID FROM $wpdb->posts WHERE post_type = 'revision' AND post_modified < %s",
        $date
    ));

    foreach ($revisions as $revision) {
        wp_delete_post($revision->ID, true);
    }
}

// Запускаем еженедельно
if (!wp_next_scheduled('wpkeys_weekly_delete_old_revisions')) {
    wp_schedule_event(time(), 'weekly', 'wpkeys_weekly_delete_old_revisions');
}
add_action('wpkeys_weekly_delete_old_revisions', 'wpkeys_delete_old_revisions');

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

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

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

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

Использование плагинов упрощает задачу, но автоматизация через код даёт больше контроля и гибкости.

Автоматизация с WPKeys: расширенные возможности

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

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

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

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

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

3. Настраивайте расписание WP-Cron с учётом нагрузки на сервер, чтобы не создавать пиков.

4. Внимательно подбирайте условия удаления, чтобы не потерять важный контент.

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

Итог

Автоматизация удаления старого контента в WordPress — эффективный способ поддерживать сайт в порядке и улучшать производительность. С помощью простых функций на PHP и WP-Cron, а также специализированных плагинов от WPShop, вы сможете без лишних усилий управлять содержимым и базой данных.

Узнать правила изменения URL в WordPress без потери трафика
03.11.2025
WooCommerce: автоматическое изменение наличия и стоимости товара при оформлении заказа
09.05.2026
WooCommerce: автоматическое изменение стоимости товара и удаление из корзины через AJAX без перезагрузки
03.05.2026
Как использовать омнинаправленные хуки в WordPress для распространённых задач
22.02.2026
Как использовать WPCommunity для создания социальной сети на WordPress
06.04.2026

На оформлении, скоро здесь появится полноценный ресурс