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

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

Что такое временные файлы в WordPress и зачем их удалять

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

  • Файлы кэша (object-cache, page-cache, transient cache)
  • Временные файлы загрузок (upload tmp)
  • Логи ошибок и отладки
  • Резервные копии, сделанные плагинами резервного копирования
  • Временные файлы обновлений

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

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

Первым шагом нужно понять, какие именно временные файлы создаёт ваша установка WordPress и плагины. Для этого:

  1. Подключитесь к серверу через FTP или SSH.
  2. Изучите папки wp-content/uploads, wp-content/cache, wp-content/backups (если есть), а также папку wp-content/plugins на наличие временных файлов.
  3. Проверьте плагины, которые создают кэш или резервные копии, и ознакомьтесь с их документацией по очистке.

Важно не удалять файлы, которые необходимы для работы сайта, поэтому тщательно тестируйте любые действия на тестовом стенде.

Автоматизация удаления временных файлов с помощью плагинов WordPress

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

  • WP-Optimize — позволяет удалять кэш, очищать базу данных и удалять временные файлы.
  • Advanced Database Cleaner — фокусируется на очистке базы и кэша, включая временные данные.
  • Delete Expired Transients — автоматически удаляет просроченные transient-данные.

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

Пример настройки WP-Optimize для автоматической очистки

После установки WP-Optimize перейдите в раздел "Планировщик" и активируйте автоматическую очистку. Выберите, какие именно данные удалять (кэш, старые ревизии, спам-комментарии, transient-данные) и задайте интервал (например, раз в неделю).

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

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

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

function wptour_delete_temp_files() {
    $upload_dir = wp_upload_dir();
    $temp_dir = $upload_dir['basedir'] . '/temp'; // Папка с временными файлами

    if ( ! is_dir( $temp_dir ) ) {
        return;
    }

    $files = glob( $temp_dir . '/*' );

    foreach ( $files as $file ) {
        if ( is_file( $file ) && filemtime( $file ) < strtotime('-7 days') ) {
            unlink( $file );
        }
    }
}

Эта функция удаляет все файлы в папке wp-content/uploads/temp, которым больше 7 дней.

Добавление WP-Cron задачи для регулярного запуска

function wptour_schedule_temp_files_cleanup() {
    if ( ! wp_next_scheduled( 'wptour_daily_temp_cleanup' ) ) {
        wp_schedule_event( time(), 'daily', 'wptour_daily_temp_cleanup' );
    }
}
add_action( 'wp', 'wptour_schedule_temp_files_cleanup' );

add_action( 'wptour_daily_temp_cleanup', 'wptour_delete_temp_files' );

Этот код создаёт ежедневную задачу, которая запускает удаление временных файлов.

Удаление временных файлов кэша и transient-данных из базы данных

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

Функция для удаления всех просроченных transient-данных

function wptour_delete_expired_transients() {
    global $wpdb;
    $time = current_time( 'mysql' );

    $expired = $wpdb->get_col( $wpdb->prepare(
        "SELECT option_name FROM $wpdb->options WHERE option_name LIKE '_transient_%' AND option_name NOT LIKE '_transient_timeout_%' "
    ) );

    foreach ( $expired as $transient ) {
        $transient_name = str_replace( '_transient_', '', $transient );
        if ( false === get_transient( $transient_name ) ) {
            delete_transient( $transient_name );
        }
    }
}

Эту функцию можно вызвать по расписанию аналогично примеру выше.

Рекомендации и лучшие практики для очистки временных файлов

При организации автоматической очистки временных файлов следуйте таким рекомендациям:

  • Всегда делайте резервные копии сайта и базы данных перед внедрением автоматической очистки.
  • Тестируйте скрипты на локальном или тестовом сервере, чтобы избежать случайного удаления нужных данных.
  • Настраивайте интервалы очистки в зависимости от активности сайта — для больших проектов лучше чаще.
  • Используйте логи для отслеживания работы очистки — это поможет выявить ошибки.
  • Совмещайте очистку файлов и базы данных для максимальной эффективности.
Как создать динамическую пагинацию в WordPress с помощью AJAX
28.02.2026
Как автоматизировать управление переадресациями в WordPress
10.04.2026
Как создать автоматические уведомления о неактивных пользователях в WordPress
20.01.2026
Как избежать проблем с отметками продукта в WooCommerce при массовом импорте
28.04.2026
Как автоматически удалять временные файлы в WordPress
09.12.2025

Уроки со скриншотами, подробные руководства