Автоматическое удаление старых чертежей в WordPress

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

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

Чертежи, как правило, имеют большой размер, особенно если они в форматах PDF, SVG, DWG или больших растровых изображениях. Со временем их количество растет, и они начинают занимать значительное дисковое пространство. Автоматическое удаление устаревших файлов позволяет:

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

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

Как настроить автоматическое удаление файлов с помощью WP-Cron и кастомного кода

Рассмотрим пример, как создать задачу, которая будет регулярно удалять чертежи старше 180 дней. Предположим, что чертежи загружаются в определенную папку в wp-content/uploads/drawings и имеют расширения pdf, dwg или svg.

Шаг 1. Создаем функцию для удаления старых чертежей

function wpedu_delete_old_drawings() {
    $upload_dir = wp_upload_dir();
    $drawings_dir = $upload_dir['basedir'] . '/drawings';
    $days_old = 180; // удалять файлы старше 180 дней

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

    $files = scandir($drawings_dir);
    $now = time();
    $deleted_files = 0;

    foreach ($files as $file) {
        if (in_array(pathinfo($file, PATHINFO_EXTENSION), ['pdf', 'dwg', 'svg'])) {
            $file_path = $drawings_dir . '/' . $file;
            $file_mtime = filemtime($file_path);
            if ($file_mtime && ($now - $file_mtime) > ($days_old * DAY_IN_SECONDS)) {
                if (unlink($file_path)) {
                    $deleted_files++;
                }
            }
        }
    }

    if ($deleted_files) {
        error_log("[WPEDU] Удалено старых чертежей: " . $deleted_files);
    }
}

Шаг 2. Регистрируем событие WP-Cron для регулярного запуска

function wpedu_schedule_delete_drawings() {
    if (!wp_next_scheduled('wpedu_delete_old_drawings_hook')) {
        wp_schedule_event(time(), 'daily', 'wpedu_delete_old_drawings_hook');
    }
}
add_action('wp', 'wpedu_schedule_delete_drawings');
add_action('wpedu_delete_old_drawings_hook', 'wpedu_delete_old_drawings');

Шаг 3. Отменяем событие при деактивации плагина или темы

function wpedu_clear_scheduled_delete_drawings() {
    $timestamp = wp_next_scheduled('wpedu_delete_old_drawings_hook');
    if ($timestamp) {
        wp_unschedule_event($timestamp, 'wpedu_delete_old_drawings_hook');
    }
}
register_deactivation_hook(__FILE__, 'wpedu_clear_scheduled_delete_drawings');

Этот код можно добавить в файл functions.php вашей темы или оформить как мини-плагин. Он ежедневно будет проверять папку с чертежами и удалять файлы старше 180 дней.

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

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

Преимущества Clearfy Pro:

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

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

Рекомендации и меры предосторожности перед автоматическим удалением

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

  • Резервное копирование. Всегда делайте бэкап сайта и базы данных, чтобы иметь возможность восстановить случайно удалённые файлы.
  • Тестирование. Запускайте функцию удаления в тестовом режиме или на локальном сервере, чтобы убедиться, что удаляются только нужные файлы.
  • Логирование. Ведите логи удаления, чтобы отслеживать процесс и своевременно реагировать на ошибки.
  • Права доступа. Убедитесь, что у веб-сервера есть права на удаление файлов в нужной папке.

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

Заключение

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

⭐⭐⭐⭐⭐