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

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

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

Черновики — это записи, которые вы начали создавать, но не опубликовали. Они могут оставаться в базе годами, если не удалять их вручную. Это приводит к нескольким проблемам:

  • Загромождение базы данных: Чем больше записей, тем тяжелее работать системе.
  • Замедление работы админки: В списках записей и поиске появляется много «мусора».
  • Ухудшение SEO и индексации: Хотя черновики не индексируются, их большое количество влияет на производительность сайта.

Регулярное удаление старых черновиков помогает поддерживать сайт в оптимальном состоянии.

Как в WordPress найти и удалить старые черновики вручную

Для начала можно просмотреть список черновиков в админке в разделе «Записи». Но когда черновиков слишком много, вручную это сделать неудобно. Вот как можно найти черновики старше определённого времени с помощью SQL-запроса:

SELECT ID, post_title, post_date FROM wp_posts WHERE post_status = 'draft' AND post_date < DATE_SUB(NOW(), INTERVAL 30 DAY);

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

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

Чтобы не заниматься этим вручную, можно написать функцию, которая будет удалять черновики старше определённого срока автоматически. Добавьте следующий код в файл functions.php вашей темы или в собственный плагин:

function wpcheck_delete_old_drafts() {
    global $wpdb;
    $days = 30; // количество дней, после которого черновики удаляются
    $date = date('Y-m-d H:i:s', strtotime("-{$days} days"));

    $drafts = $wpdb->get_col($wpdb->prepare(
        "SELECT ID FROM {$wpdb->posts} WHERE post_status = 'draft' AND post_date < %s",
        $date
    ));

    foreach ($drafts as $draft_id) {
        wp_delete_post($draft_id, true); // принудительное удаление
    }
}

// Запускаем функцию при запуске WP Cron ежедневно
add_action('wpcheck_delete_old_drafts_hook', 'wpcheck_delete_old_drafts');

if (!wp_next_scheduled('wpcheck_delete_old_drafts_hook')) {
    wp_schedule_event(time(), 'daily', 'wpcheck_delete_old_drafts_hook');
}

Этот код создаёт ежедневное задание, которое удаляет все черновики старше 30 дней. Вы можете изменить период, подставив нужное значение в переменную $days.

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

Мы используем глобальный объект $wpdb для прямого запроса к базе данных, чтобы найти ID нужных записей. Затем удаляем их функцией wp_delete_post() с параметром true, чтобы выполнить безвозвратное удаление. Запланированное событие создаётся через WP Cron, что позволяет выполнять задачу автоматически каждый день.

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

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

  • WP-Optimize — мощный инструмент для очистки базы данных, который позволяет удалять старые черновики и ревизии. Можно настроить автоматическую очистку по расписанию.
  • Advanced Database Cleaner — плагин с гибкими настройками для удаления неиспользуемых записей, включая черновики и устаревшие метаданные.
  • Clearfy — оптимизирует работу WordPress и умеет удалять мусорные записи, включая черновики. Поддерживает автоматизацию процессов.

Все эти плагины можно найти на WPSHOP.ru с удобной установкой и поддержкой.

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

Кроме удаления старых черновиков, стоит обратить внимание на ревизии записей. WordPress по умолчанию сохраняет много ревизий, которые тоже накапливаются и замедляют сайт. Чтобы ограничить их количество, добавьте в wp-config.php следующую строку:

define('WP_POST_REVISIONS', 5); // сохранять не более 5 ревизий

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

Также рекомендуем регулярно оптимизировать таблицы базы данных с помощью команды OPTIMIZE TABLE или специализированных плагинов. Это уменьшит размер базы и повысит скорость запросов.

Заключение по автоматическому удалению старых черновиков в WordPress

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как настроить логирование ошибок в WordPress для удобного отладки
14.01.2026
Как использовать функцию wp_unique_slug для решения проблем с URL в WordPress
16.05.2026
Как отключить XML-RPC в WordPress для защиты сайта
13.03.2026
Как удалить неиспользуемые таксономии в WordPress: практическое руководство
01.04.2026
Диагностика и решение проблем с неработающими AJAX-запросами в WooCommerce
07.05.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее