Удаление всех бесплатных плагинов из WordPress за один ход

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

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

Почему стоит удалять бесплатные плагины массово

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

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

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

Определение бесплатных плагинов: как их отличить

В WordPress плагины располагаются в директории wp-content/plugins/. Каждый плагин имеет файл с шапкой, где прописана информация:

/*
Plugin Name: Название плагина
Plugin URI: https://example.com
Description: Описание
Version: 1.0
Author: Автор
Author URI: https://author.example.com
License: GPLv2 or later
*/

Бесплатные плагины чаще всего распространяются под лицензией GPL и размещены в официальном репозитории WordPress. Признак бесплатного плагина — наличие поля Plugin URI, указывающего на wordpress.org или отсутствие коммерческого домена в имени автора.

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

Код для массового удаления бесплатных плагинов

Создадим функцию wpteam_delete_free_plugins(), которая переберет все плагины, определит бесплатные и удалит их.

function wpteam_delete_free_plugins() {
    if ( ! current_user_can('activate_plugins') ) {
        return 'Нет доступа';
    }

    include_once ABSPATH . 'wp-admin/includes/plugin.php';

    $all_plugins = get_plugins();
    $deleted = [];

    foreach ($all_plugins as $plugin_file => $plugin_data) {
        // Проверяем лицензию
        if ( isset($plugin_data['License']) && stripos($plugin_data['License'], 'GPL') !== false ) {
            // Дополнительно можно проверить Plugin URI на wordpress.org
            if ( isset($plugin_data['PluginURI']) && strpos($plugin_data['PluginURI'], 'wordpress.org') !== false ) {
                // Удаляем плагин
                $plugin_path = WP_PLUGIN_DIR . '/' . $plugin_file;
                if ( is_dir($plugin_path) ) {
                    wpteam_rrmdir($plugin_path);
                    $deleted[] = $plugin_data['Name'];
                } else {
                    // Файл плагина
                    @unlink($plugin_path);
                    $deleted[] = $plugin_data['Name'];
                }
            }
        }
    }

    return $deleted;
}

// Рекурсивное удаление папки
function wpteam_rrmdir($dir) {
    if (is_dir($dir)) {
        $objects = scandir($dir);
        foreach ($objects as $object) {
            if ($object != "." && $object != "..") {
                $path = $dir . DIRECTORY_SEPARATOR . $object;
                if (is_dir($path)) {
                    wpteam_rrmdir($path);
                } else {
                    @unlink($path);
                }
            }
        }
        @rmdir($dir);
    }
}

Этот код проверяет, что пользователь имеет права на управление плагинами, затем получает список всех плагинов и удаляет те, что лицензированы GPL и имеют ссылку на wordpress.org. Удаление происходит рекурсивно для папок плагинов. Можно доработать фильтр под свои нужды, например, добавить исключения.

Использование кода: запуск через WP-CLI или как плагин

Для запуска функции можно добавить вызов в файл functions.php темы с условием, чтобы он сработал один раз, или создать отдельный плагин с этим кодом. Более удобный вариант — использовать WP-CLI:

wp eval 'print_r(wpteam_delete_free_plugins());'

Этот вызов выведет список удаленных плагинов и позволит контролировать процесс без риска случайного запуска через браузер.

Плагины для аналогичной задачи и их ограничения

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

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

Резюме и рекомендации по безопасности

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

  • Делайте резервную копию сайта и базы данных.
  • Проверяйте права доступа перед запуском кода.
  • Тестируйте на локальной копии сайта.
  • Используйте WP-CLI для безопасного запуска.

Таким образом вы сохраните контроль над сайтом и избавитесь от лишних бесплатных плагинов эффективно и быстро.

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

Создать и использовать динамические корзинные элементы в WooCommerce с AJAX
17.02.2026
Как создать собственный вид возможностей для поиска в WordPress
18.03.2026
Как использовать REST API в WordPress для создания собственных функций
13.11.2025
Как создать собственный шорткод в WordPress для удобного вывода контента
02.11.2025
Как использовать хук pre_get_posts для сложной фильтрации в WordPress
22.01.2026