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

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

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

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

  • Увеличение нагрузки на базу данных и сервер
  • Замедление работы админ-панели и сайта в целом
  • Сложности при бэкапах и миграциях
  • Потеря актуальности контента

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

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

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

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

// Запускаем функцию раз в сутки
if ( ! wp_next_scheduled( 'wpfactory_daily_old_posts_deletion' ) ) {
    wp_schedule_event( time(), 'daily', 'wpfactory_daily_old_posts_deletion' );
}
add_action( 'wpfactory_daily_old_posts_deletion', 'wpfactory_auto_delete_old_posts' );

Данный код создаёт ежедневное событие Cron, которое удаляет все опубликованные записи старше одного года. Можно изменить параметр 'before' на нужный вам период.

Объяснение кода

Функция wpfactory_auto_delete_old_posts получает список ID записей, соответствующих условию даты, затем удаляет каждую из них без перемещения в корзину. Хук wpfactory_daily_old_posts_deletion вызывается ежедневно с помощью планировщика WordPress. Это простой и эффективный способ автоматизировать очистку.

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

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

1. WP Bulk Delete

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

Преимущества:

  • Гибкая фильтрация по категориям, меткам, типам записей
  • Автоматизация через планировщик задач
  • Простота интерфейса

Вы можете скачать и узнать подробнее о плагине на wpshop.ru.

2. Auto Delete Posts

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

Как избежать ошибок и потери важного контента

Перед автоматическим удалением записей важно продумать следующие моменты:

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

Пример добавления исключения для закреплённых записей в код:

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

    $old_posts = get_posts( $args );

    if ( ! empty( $old_posts ) ) {
        foreach ( $old_posts as $post_id ) {
            if ( ! is_sticky( $post_id ) ) {
                wp_delete_post( $post_id, true );
            }
        }
    }
}

Заключение: правильная автоматизация удаления записей

Автоматическое удаление старых записей помогает поддерживать сайт в актуальном и оптимизированном состоянии. Используйте приведённые примеры кода или плагины, чтобы настроить процесс под свои задачи. Не забывайте про резервные копии и тщательное тестирование, чтобы избежать потери важного контента.

Если нужно расширенное управление отзывами и рейтингами при удалении контента, советуем обратить внимание на плагин Expert Review, который поможет интегрировать автоматизацию с системой отзывов.

Автоматическое удаление старых записей в WordPress
22.03.2026
Как автоматизировать обновления плагинов WordPress без рисков
29.11.2025
Как удалить или отключить плагин в WordPress без доступа к админке
25.11.2025
Как использовать хук WooCommerce thankyou для автоматических действий после оформления заказа
28.04.2026
Как добавить автоматическое сообщение о поддержке в WordPress
24.01.2026