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

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

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

Удаление устаревших записей и страниц помогает:

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

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

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

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

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

function wpelement_delete_old_posts() {
    $args = array(
        'date_query' => array(
            array(
                'before' => '1 year ago',
                'inclusive' => true,
            ),
        ),
        'post_type'      => 'post',
        'post_status'    => 'publish',
        'posts_per_page' => -1,
        'fields'         => 'ids',
    );
    $old_posts = get_posts($args);

    if (!empty($old_posts)) {
        foreach ($old_posts as $post_id) {
            wp_delete_post($post_id, true); // true - для полного удаления без корзины
        }
    }
}

// Планируем задачу при инициализации
function wpelement_schedule_old_posts_deletion() {
    if (!wp_next_scheduled('wpelement_daily_old_posts_cleanup')) {
        wp_schedule_event(time(), 'daily', 'wpelement_daily_old_posts_cleanup');
    }
}
add_action('wp', 'wpelement_schedule_old_posts_deletion');

// Привязываем функцию к событию
add_action('wpelement_daily_old_posts_cleanup', 'wpelement_delete_old_posts');

Этот код нужно добавить в файл functions.php вашей темы или в отдельный плагин. Он будет ежедневно проверять и удалять все публикации старше года.

Как адаптировать функцию под другие типы контента

Если нужно удалять страницы, пользовательские типы записей или черновики, измените параметр post_type и post_status в запросе:

  • post_type: 'page', 'custom_post_type'
  • post_status: 'draft', 'pending', 'private'

Например, чтобы удалять черновики старше 30 дней:

$args = array(
    'date_query' => array(
        array(
            'before' => '30 days ago',
            'inclusive' => true,
        ),
    ),
    'post_type' => 'post',
    'post_status' => 'draft',
    'posts_per_page' => -1,
    'fields' => 'ids',
);

Использование плагинов для автоматизации удаления

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

Плагин WP Bulk Delete

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

  • Позволяет выбрать типы записей, статусы, категории.
  • Можно настроить удаление по дате публикации, например, старше 6 месяцев.
  • Поддерживает удаление по расписанию (cron).

Для удобства можете найти WP Bulk Delete на wpshop.ru с учётом UTM меток.

Плагин Clearfy Pro для автоматизации очистки

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

Как обезопасить процесс удаления старого контента

Удаление данных — рискованная операция, поэтому рекомендуем соблюдать следующие правила:

  • Перед автоматизацией сделайте полную резервную копию сайта и базы данных.
  • Проверяйте логи и уведомления плагинов, чтобы контролировать процесс.
  • Используйте тестовую среду для отладки кода, прежде чем запускать на живом сайте.
  • Убедитесь, что удаляются только действительно устаревшие и не нужные публикации.
  • При необходимости сначала перемещайте записи в черновики или в отдельную категорию, чтобы проверить, что нужно удалять.

Дополнительные советы по оптимизации и очистке контента

Автоматическое удаление ревизий и автосохранений

Ревизии постов и автосохранения накапливаются со временем и могут занимать много места. Добавьте в wp-config.php ограничение количества ревизий:

define('WP_POST_REVISIONS', 5);

Для удаления старых ревизий можно использовать плагин Clearfy Pro или написать отдельный скрипт.

Удаление старых медиафайлов

Часто в медиатеке остаются файлы, которые не используются на сайте. Для поиска и удаления таких файлов можно использовать плагин Media Cleaner.

Оптимизация базы данных

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

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

Как отключить e-mail уведомления от автоматических сообщений WordPress
22.02.2026
Как удалить постоянно заблокированные IP-адреса в WordPress
14.04.2026
Как создать настраиваемую настройку темы WordPress в панели администратора
12.01.2026
Как использовать AJAX в WordPress для обновления контента без перезагрузки страницы
05.12.2025
Как добавить многоязычность в WordPress без плагинов
05.04.2026