wpcodes.ru wordpress WP Codеs

Удаление старых записей из базы WordPress по датам

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

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

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

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

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

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

Чаще всего удаляют записи старше определённого срока, например, 2-3 лет. Можно фильтровать по дате публикации, по статусу записи (например, только опубликованные), по типу записи (посты, кастомные типы) и даже по категориям.

Пример фильтрации записей, опубликованных более 2 лет назад:

SELECT ID FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish' AND post_date < DATE_SUB(NOW(), INTERVAL 2 YEAR);

Этот запрос поможет определить, какие записи подходят под критерий удаления.

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

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

Плагин WP Bulk Delete

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

Ссылка: https://ru.wordpress.org/plugins/wp-bulk-delete/

Clearfy Pro для оптимизации и удаления

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

Кастомное решение: удаление записей по дате через PHP

Если нужен более тонкий контроль и автоматизация, можно использовать PHP-скрипт, который запускается через wp-cron или вручную. Ниже пример функции, которая удаляет посты старше заданного количества дней.

function wpcodes_delete_old_posts($days = 730) { // 730 дней = 2 года
    global $wpdb;
    $date_threshold = date('Y-m-d H:i:s', strtotime('-' . intval($days) . ' days'));

    $posts_to_delete = $wpdb->get_col($wpdb->prepare(
        "SELECT ID FROM {$wpdb->posts} WHERE post_type = %s AND post_status = %s AND post_date < %s",
        'post', 'publish', $date_threshold
    ));

    if (empty($posts_to_delete)) {
        return 0; // Нет записей для удаления
    }

    foreach ($posts_to_delete as $post_id) {
        wp_delete_post($post_id, true); // Полное удаление без перемещения в корзину
    }

    return count($posts_to_delete);
}

Эту функцию можно вызвать, например, по крону:

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

add_action('wpcodes_daily_old_posts_cleanup', function() {
    $deleted = wpcodes_delete_old_posts(730);
    error_log("Удалено старых записей: " . $deleted);
});

Как избежать ошибок при удалении

Перед удалением обязательно сделайте полный бэкап базы данных. Удаление через wp_delete_post() корректно удаляет все связанные данные, включая метаданные и комментарии. Не используйте прямые SQL-запросы для удаления, если не уверены в последствиях.

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

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

Архивирование вместо удаления

Если контент может понадобиться в будущем, рассмотрите возможность архивирования. Можно экспортировать старые записи или переводить их в черновики.

Автоматизация с помощью WP GPT и других инструментов

Для автоматизации анализа и оптимизации контента можно использовать плагины, например, WP GPT, который поможет создавать отчёты и рекомендации по обновлению или удалению устаревших материалов.

Заключение по технической части

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

×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее