Как автоматизировать удаление старых файлов в WordPress: практические решения для WPUpload

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

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

С течением времени в папке wp-content/uploads и других директориях сайта копятся неиспользуемые или устаревшие файлы. Это может приводить к следующим проблемам:

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

Ручное удаление требует много времени и может привести к ошибкам. Автоматизация решает эту задачу быстро и эффективно.

Обзор популярных плагинов для автоматического удаления файлов

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

1. Media Cleaner

Media Cleaner — плагин, который сканирует библиотеку медиафайлов и находит неиспользуемые изображения и файлы. Он позволяет удалять их массово или по отдельности.

  • Поддерживает работу с различными плагинами и темами.
  • Имеется бесплатная и PRO-версия с дополнительными функциями.
  • Есть возможность использовать автоматический режим очистки.

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

2. WP-Optimize

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

  • Простая настройка.
  • Встроенные функции для регулярной очистки.
  • Подходит для комплексной оптимизации.

3. Advanced Database Cleaner

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

Как написать собственную функцию для удаления старых файлов в папке uploads

Если хочется максимально контролировать процесс, можно написать собственный код, который будет искать и удалять медиафайлы старше определенного срока. Ниже пример функции wpupload_delete_old_uploads(), которую можно добавить в файл functions.php вашей темы или в специальный плагин.

function wpupload_delete_old_uploads($days = 180) {
    $upload_dir = wp_upload_dir();
    $base_dir = $upload_dir['basedir'];
    $files_deleted = 0;

    // Получаем все файлы в папке uploads
    $rii = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($base_dir));

    $now = time();
    foreach ($rii as $file) {
        if ($file->isDir()) continue;

        $file_path = $file->getPathname();
        $file_mtime = $file->getMTime();

        // Удаляем файлы старше $days дней
        if (($now - $file_mtime) > ($days * 24 * 60 * 60)) {
            // Проверяем, что файл не используется в медиа
            $attachment_id = attachment_url_to_postid(str_replace(ABSPATH, site_url(ABSPATH), $file_path));
            if (!$attachment_id && unlink($file_path)) {
                $files_deleted++;
            }
        }
    }
    return $files_deleted;
}

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

Как безопасно запустить функцию

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

add_action('wpupload_delete_old_files_event', 'wpupload_delete_old_uploads');

if (!wp_next_scheduled('wpupload_delete_old_files_event')) {
    wp_schedule_event(time(), 'weekly', 'wpupload_delete_old_files_event');
}

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

Удаление временных файлов WordPress и кэша

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

Очистка кэша

Если вы используете кэш-плагины (например, W3 Total Cache, WP Super Cache), в них есть встроенные механизмы очистки. Но для удаления файлов кэша можно написать функцию, удаляющую содержимое папки кэша:

function wpupload_clear_cache_folder($cache_dir) {
    if (!is_dir($cache_dir)) return;

    $files = glob($cache_dir . '/*');
    foreach ($files as $file) {
        if (is_file($file)) {
            unlink($file);
        } elseif (is_dir($file)) {
            wpupload_clear_cache_folder($file); // рекурсия для вложенных папок
            rmdir($file);
        }
    }
}

Применяйте эту функцию аккуратно, учитывая структуру кэша вашего плагина.

Удаление временных бэкапов и логов

Плагины для бэкапа часто хранят временные файлы в определенных папках. Их можно удалить аналогично, установив критерии по дате и типу файлов. Например, для плагина UpdraftPlus временные файлы лежат в wp-content/updraft.

Резюме и рекомендации по автоматизации удаления файлов

Автоматизация удаления старых файлов в WordPress — важный шаг к поддержанию здоровья сайта и оптимизации ресурсов. Рекомендуем:

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

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

Как отладить проблемы загрузки файлов в WordPress с помощью WPUpload
22.02.2026
Не работает загрузка файлов в WordPress при ограничениях сервера: как исправить
17.12.2025
Как использовать WP Upload Dir для разделения файлов в WordPress
25.02.2026
Как добавить проверку вирусов при загрузке файлов в WordPress
26.03.2026
Как разрешить и использовать WooCommerce REST API в WordPress
09.11.2025

wp upload - это директория в WP для загрузки файлов. Подробнее про загрузку файлов в админку можно почитать на этой странице.