В процессе администрирования WordPress часто возникает необходимость удалить или заблокировать плагин. Обычно это делается через административную панель, но бывают ситуации, когда стандартные методы не работают: плагин не удаляется, не деактивируется или вызывает ошибки. В этой статье подробно рассмотрим, как решить эти проблемы правильно и безопасно.
Почему плагины не удаляются стандартно
Основные причины, по которым плагин нельзя удалить через админку:
- Проблемы с правами доступа к файловой системе сервера;
- Плагины, использующие собственные методы блокировки деактивации (например, коммерческие решения);
- Ошибки в коде плагина, приводящие к сбоям при попытке удаления;
- Плагины, которые изменяют логику загрузки и блокируют деактивацию.
Понимание причины поможет выбрать правильный способ решения.
Удаление плагина через FTP или файловый менеджер хостинга
Если админка не позволяет удалить плагин, самый простой и надежный способ — удалить папку плагина вручную через FTP или файловый менеджер хостинга.
- Подключитесь к серверу через FTP-клиент (например, FileZilla) или через панель управления хостингом;
- Перейдите в папку
wp-content/plugins; - Найдите папку плагина, который хотите удалить;
- Удалите эту папку полностью.
После удаления папки плагин будет автоматически деактивирован. Но важно помнить, что данные плагина (например, настройки в базе данных) могут остаться, поэтому при необходимости их надо удалять отдельно.
Удаление данных плагина из базы данных
Чтобы полностью очистить сайт от следов плагина, нужно удалить связанные записи из базы данных. Для этого можно использовать phpMyAdmin или аналог:
- Найдите таблицы с префиксом плагина или записи в таблицах
wp_options,wp_usermeta,wp_postmetaи других, связанные с плагином; - Выполните SQL-запросы для удаления этих записей.
Пример запроса для удаления опций плагина с префиксом myplugin_:
DELETE FROM wp_options WHERE option_name LIKE 'myplugin_%';Будьте внимательны и делайте резервные копии базы данных перед изменениями.
Принудительная деактивация плагина через код
Если плагин нельзя деактивировать в админке из-за ошибок или блокировок, можно использовать код для принудительного отключения:
function wptemplates_disable_plugin() {
deactivate_plugins('plugin-folder/plugin-file.php');
}
add_action('admin_init', 'wptemplates_disable_plugin');Где 'plugin-folder/plugin-file.php' — путь к основному файлу плагина относительно папки wp-content/plugins. Этот код можно добавить во временный плагин или в файл functions.php активной темы.
После успешной деактивации удалите этот код.
Блокировка активации плагина программно
Чтобы предотвратить повторную активацию проблемного плагина, можно использовать фильтр option_active_plugins или хуки активации:
function wptemplates_block_plugin_activation($plugins) {
$blocked = 'plugin-folder/plugin-file.php';
if(($key = array_search($blocked, $plugins)) !== false) {
unset($plugins[$key]);
}
return $plugins;
}
add_filter('option_active_plugins', 'wptemplates_block_plugin_activation');Этот код исключит плагин из списка активных и заблокирует его активацию.
Автоматическая деактивация с уведомлением
Можно добавить уведомление администратору после деактивации:
function wptemplates_admin_notice_plugin_deactivated() {
if (isset($_GET['wptemplates_plugin_deactivated'])) {
echo '<div class="notice notice-warning is-dismissible">Плагин был принудительно деактивирован из-за проблем.</div>';
}
}
add_action('admin_notices', 'wptemplates_admin_notice_plugin_deactivated');
function wptemplates_deactivate_plugin_with_redirect() {
deactivate_plugins('plugin-folder/plugin-file.php');
wp_redirect(admin_url('plugins.php?wptemplates_plugin_deactivated=1'));
exit;
}
// Вызвать wptemplates_deactivate_plugin_with_redirect() по необходимостиИспользование плагинов для управления проблемными плагинами
Существуют плагины, которые помогают управлять и удалять проблемные расширения:
- Clearfy Pro — оптимизация и управление плагинами, включая отключение и очистку;
- Plugin Organizer — позволяет контролировать порядок и активацию плагинов;
- WP Reset — сбрасывает настройки и помогает удалить плагины без остатка.
Для сайта с большим количеством плагинов эти инструменты помогут избежать конфликтов и облегчить администрирование.