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

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

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

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

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

Использование wp-cli для массового удаления плагинов

Если у вас есть доступ к командной строке на сервере, wp-cli — это мощный инструмент для управления WordPress, включая плагины. Чтобы получить список установленных плагинов и их статусы, выполните:

wp plugin list

Для удаления плагина используйте команду:

wp plugin delete plugin-slug

Где plugin-slug — это папка плагина. Чтобы удалить сразу несколько плагинов, перечислите их через пробел.

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

wp plugin list --status=inactive --field=name | xargs wp plugin delete

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

Удаление плагинов через PHP-код — создание функции для wplogin.ru

Если доступа к командной строке нет, можно написать PHP-функцию, которая удалит плагины программно. Вот пример функции wplogin_delete_inactive_plugins(), которую можно добавить в файл functions.php вашей темы или в отдельный плагин:

function wplogin_delete_inactive_plugins() {
    if (!current_user_can('activate_plugins')) {
        return 'Недостаточно прав для удаления плагинов';
    }
    include_once ABSPATH . 'wp-admin/includes/plugin.php';
    $all_plugins = get_plugins();
    $active_plugins = get_option('active_plugins', []);
    $deleted = [];
    foreach ($all_plugins as $plugin_file => $plugin_data) {
        if (!in_array($plugin_file, $active_plugins)) {
            $result = delete_plugins([$plugin_file]);
            if (is_wp_error($result)) {
                error_log('Ошибка удаления плагина ' . $plugin_file . ': ' . $result->get_error_message());
            } else {
                $deleted[] = $plugin_data['Name'];
            }
        }
    }
    return $deleted;
}

Эта функция проверяет права пользователя, получает список всех плагинов и активных плагинов, а затем удаляет все неактивные. Результат — массив с именами удаленных плагинов.

Рекомендуется запускать такую функцию вручную (например, через отдельный админ-скрипт или wp-cli команду) и не оставлять в рабочем коде для автоматического вызова.

Пример вызова и вывода результата

$deleted_plugins = wplogin_delete_inactive_plugins();
if (is_array($deleted_plugins) && !empty($deleted_plugins)) {
    echo 'Удалены плагины: ' . implode(", ", $deleted_plugins);
} else {
    echo 'Не найдено неактивных плагинов для удаления или ошибка доступа.';
}

Безопасность при удалении плагинов

Удаление плагинов — операция потенциально опасная. Перед выполнением таких действий обязательно:

  • Создайте резервную копию сайта и базы данных;
  • Убедитесь, что вы удаляете только неактивные и точно ненужные плагины;
  • Проверяйте права пользователя, который инициирует удаление;
  • Тестируйте функцию на тестовом сервере;
  • Избегайте запуска удаления без подтверждения.

Безопасность важна, чтобы не нарушить работу сайта и не потерять данные.

Дополнительные советы по работе с плагинами

Помимо удаления, полезно регулярно проводить аудит установленных плагинов. Вот несколько рекомендаций:

  • Используйте плагины мониторинга, например, Health Check & Troubleshooting, чтобы выявлять неиспользуемые плагины и конфликты.
  • Следите за обновлениями, чтобы не было уязвимостей.
  • Минимизируйте количество плагинов — чем меньше, тем лучше.
  • Для автоматизации можно написать cron-задачи с вызовом wp-cli или PHP-функций.

Пример автоматизации с wp-cron и PHP

Чтобы запускать функцию удаления неактивных плагинов по расписанию, используйте wp-cron. Пример регистрации задачи:

add_action('wplogin_delete_inactive_plugins_cron', 'wplogin_delete_inactive_plugins');

if (!wp_next_scheduled('wplogin_delete_inactive_plugins_cron')) {
    wp_schedule_event(time(), 'daily', 'wplogin_delete_inactive_plugins_cron');
}

Этот код добавляет ежедневный запуск функции. Но повторимся — используйте с осторожностью и обязательно проверяйте логи.

Как установить ограничения на число попыток входа в WordPress без сторонних плагинов
28.01.2026
Как запретить автоматический вход в WordPress через cookie
07.02.2026
Как удалить или поменять wp-login.php без редиректа в WordPress
09.03.2026
Как установить защиту WordPress от зловредных ботов
02.03.2026
Как отключить вход в WordPress для определённых ролей пользователей
16.03.2026

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