wpdownload.ru wordpress WPDownload.ru

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

Зачем нужно удалять старые версии плагинов WordPress

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

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

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

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

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

Рассмотрим пример функции, которую можно добавить в файл functions.php вашей темы или в отдельный плагин:

function wpdownload_delete_old_plugin_versions($plugin) {
    $upload_dir = wp_upload_dir();
    $upgrade_dir = WP_CONTENT_DIR . '/upgrade';
    if (is_dir($upgrade_dir)) {
        $files = scandir($upgrade_dir);
        foreach ($files as $file) {
            if (strpos($file, $plugin) !== false && (substr($file, -4) === '.zip' || is_dir($upgrade_dir . '/' . $file))) {
                $path = $upgrade_dir . '/' . $file;
                if (is_dir($path)) {
                    // Рекурсивное удаление папки
                    wpdownload_recursive_delete($path);
                } else {
                    unlink($path);
                }
            }
        }
    }
}

function wpdownload_recursive_delete($dir) {
    $files = array_diff(scandir($dir), array('.', '..'));
    foreach ($files as $file) {
        $path = "$dir/$file";
        if (is_dir($path)) {
            wpdownload_recursive_delete($path);
        } else {
            unlink($path);
        }
    }
    rmdir($dir);
}

add_action('upgrader_process_complete', function($upgrader, $options) {
    if ($options['action'] == 'update' && $options['type'] == 'plugin') {
        foreach ($options['plugins'] as $plugin) {
            wpdownload_delete_old_plugin_versions($plugin);
        }
    }
}, 10, 2);

Эта функция подключается к хуку upgrader_process_complete, который вызывается после обновления плагинов. В ней происходит сканирование папки wp-content/upgrade с удалением архивов и распакованных папок, связанных с обновлёнными плагинами.

Пояснения к коду

  • wpdownload_delete_old_plugin_versions — основная функция удаления файлов.
  • Используется рекурсивная функция wpdownload_recursive_delete для удаления директорий.
  • Хук upgrader_process_complete передаёт информацию об обновлённых плагинах.

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

Использование плагинов для очистки старых версий плагинов

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

  • Clearfy Pro — плагин для оптимизации WordPress, который содержит модуль очистки временных файлов, в том числе старых версий плагинов. Подробнее: https://wpshop.ru/clearfy-pro.
  • WP-Optimize — популярный плагин для очистки и оптимизации базы данных и файлов сайта. Позволяет удалять временные файлы и кэш.

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

Как избежать накопления старых версий плагинов без регулярной очистки

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

  • Используйте автоматические обновления только для проверенных и совместимых плагинов.
  • Регулярно делайте резервные копии сайта, чтобы откатываться не к старым архивам, а к бэкапам.
  • Проверяйте доступное место на сервере и следите за папкой wp-content/upgrade.

Так вы сможете минимизировать риски и не допустить переполнения дискового пространства.

Заключение

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

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

×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙