Как добавить автоматическое удаление неликвидных постов в WordPress

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

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

Неликвидные посты — это записи, которые не приносят трафик и не вовлекают пользователей. Их удаление помогает:

  • Сократить размер базы данных и увеличить скорость её работы.
  • Повысить качество контента сайта, убрав неактуальные и бесполезные записи.
  • Снизить нагрузку на сервер и улучшить индексирование сайта поисковиками.

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

Как определить неликвидные посты в WordPress

Основные параметры для оценки активности постов:

  • Количество просмотров. Если у вас установлен плагин статистики или вы ведёте логи, можно использовать их данные.
  • Количество комментариев. Записи без комментариев дольше определённого периода можно считать неактивными.
  • Дата публикации. Старые посты с низкой активностью — основной кандидат на удаление.

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

Реализация автоматического удаления через WP-Cron

Для автоматизации удаления создадим функцию и запланируем её выполнение с помощью WP-Cron.

Пример функции для удаления постов без комментариев за последние 6 месяцев

function wpteam_delete_inactive_posts() {
    $args = array(
        'post_type' => 'post',
        'post_status' => 'publish',
        'date_query' => array(
            array(
                'column' => 'post_date',
                'before' => '6 months ago',
            ),
        ),
        'comment_count' => 0,
        'fields' => 'ids',
        'posts_per_page' => -1,
    );

    $query = new WP_Query($args);

    if (!empty($query->posts)) {
        foreach ($query->posts as $post_id) {
            wp_delete_post($post_id, true); // true — удаление без перемещения в корзину
        }
    }
}

// Регистрируем событие
if (!wp_next_scheduled('wpteam_daily_cleanup_hook')) {
    wp_schedule_event(time(), 'daily', 'wpteam_daily_cleanup_hook');
}

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

В этом коде мы ищем все опубликованные посты старше 6 месяцев без комментариев и удаляем их безвозвратно. Функция запускается ежедневно через WP-Cron.

Добавление проверки по просмотрам с помощью плагина WP-PostViews

Для более точного анализа можно учитывать просмотры постов. Плагин WP-PostViews позволяет считать просмотры, сохраняя их в метаданных поста.

Пример расширения функции с учётом просмотров:

function wpteam_delete_inactive_posts_views() {
    $args = array(
        'post_type' => 'post',
        'post_status' => 'publish',
        'date_query' => array(
            array(
                'column' => 'post_date',
                'before' => '6 months ago',
            ),
        ),
        'fields' => 'ids',
        'posts_per_page' => -1,
    );

    $query = new WP_Query($args);

    if (!empty($query->posts)) {
        foreach ($query->posts as $post_id) {
            $views = (int) get_post_meta($post_id, 'views', true);
            $comments = get_comments_number($post_id);
            if ($views < 10 && $comments === 0) {
                wp_delete_post($post_id, true);
            }
        }
    }
}

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

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

Если не хочется писать код, можно воспользоваться плагинами для автоматизации очистки контента:

  • WP Bulk Delete — позволяет удалять посты по множеству критериев, включая дату, категорию, метки, количество комментариев и другое.
  • Delete Old Posts — плагин для автоматического удаления старых постов по расписанию.

Рекомендуется выбирать плагины с хорошими отзывами и регулярно обновляемые. Например, WP Bulk Delete совместим с последними версиями WordPress и позволяет гибко настроить правила удаления.

Рекомендации по безопасности и тестированию

Автоматическое удаление постов — операция, требующая осторожности. Несколько советов:

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

Как интегрировать с WP-Cron и плагином Clearfy Pro

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

Это позволит легко контролировать расписание очистки и отключать её при необходимости без правки кода.

Итоговые рекомендации по настройке автоматического удаления

Для эффективного удаления неликвидных постов:

  1. Определите чёткие критерии — дата, просмотры, комментарии.
  2. Используйте WP-Cron для регулярного запуска скрипта.
  3. Тестируйте на тестовом сайте и делайте резервные копии.
  4. Рассмотрите использование готовых плагинов для удобства.
  5. Интегрируйте управление задачами с плагинами оптимизации, например, Clearfy Pro.

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

Как создать собственный шорткод в WordPress: подробное руководство с примерами
10.11.2025
Запрет на автоматическую регистрацию пользователей в WordPress с подтверждением email
29.01.2026
Как удалить постоянные редиректы в WordPress
28.03.2026
Как изменить URL изображения в WordPress без плагинов
18.01.2026
Как использовать хуки в WordPress для эффективного кода
21.11.2025

Возникли задачи по WP? Вы можете задать свой вопрос на FAQwp.com Либо обратиться к специалистам поддержки.