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

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

Почему важно удалять старые записи в WordPress

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

Автоматизация удаления записей поможет:

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

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

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

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

function wpcource_delete_old_posts() {
    $args = array(
        'date_query' => array(
            array(
                'before' => date('Y-m-d', strtotime('-180 days')),
                'inclusive' => true,
            ),
        ),
        'post_type' => 'post',
        'post_status' => 'publish',
        '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 - удаление без возможности восстановления
        }
    }
}

function wpcource_schedule_delete_old_posts() {
    if (!wp_next_scheduled('wpcource_daily_delete_old_posts')) {
        wp_schedule_event(time(), 'daily', 'wpcource_daily_delete_old_posts');
    }
}

add_action('wp', 'wpcource_schedule_delete_old_posts');
add_action('wpcource_daily_delete_old_posts', 'wpcource_delete_old_posts');

Этот код добавьте в файл functions.php вашей темы или в отдельный плагин. Функция wpcource_delete_old_posts находит все опубликованные записи старше 180 дней и безвозвратно их удаляет. Запуск задачи происходит раз в сутки через WP-Cron.

Настройка периода удаления

В параметре 'before' в аргументах date_query можно менять значение '-180 days' на любой другой период, например '-90 days' для 3 месяцев или '-365 days' для года. Это позволяет гибко управлять сроком хранения записей.

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

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

  • Auto Delete Posts — позволяет настроить автоматическое удаление записей по дате публикации, категории, статусу и другим параметрам.
  • Post Expirator — плагин для установки даты истечения срока действия записи с возможностью автоматического удаления или смены статуса.
  • Clearfy Pro — многофункциональный плагин для оптимизации WordPress, в котором есть функции для автоматической очистки устаревшего контента. Подробнее о Clearfy Pro с возможностью покупки: https://wpshop.ru/clearfy-pro/

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

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

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

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

При использовании кода следите, чтобы WP-Cron работал корректно. Если на сайте мало посетителей, задачи могут запускаться нерегулярно. В таком случае стоит настроить системный cron на сервере.

Заключение

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

Как удалить постоянные редиректы в WordPress: практическое руководство
26.03.2026
Как настроить автоматическое сохранение черновиков в WordPress
12.11.2025
Как удалить старые изображения в WordPress без плагинов
22.03.2026
WooCommerce: автоматическое отключение отсутствующих вариантов товаров
22.06.2026
WooCommerce: как автоматически удалять отменённые заказы и товары из них
07.05.2026

Обучение разработке на WordPress, как создавать темы, плагины. Подробнее об обучении.