Иногда при управлении сайтом на WordPress сталкиваешься с проблемой, когда стандартное удаление плагина через админку оказывается невозможным. Плагин может не удаляться из-за различных причин: ошибки в коде, неправильные права доступа, конфликт с другими плагинами или остаточные данные в базе. В этой статье мы подробно рассмотрим, как правильно и безопасно удалить такие плагины.
Почему плагины не удаляются стандартным способом
При попытке удалить плагин через меню «Плагины» вы можете столкнуться с ошибками или отсутствием кнопки «Удалить». Основные причины:
- Плагин заблокирован системой безопасности хостинга или WordPress.
- Неправильные права на папки и файлы плагина.
- Плагин оставил после себя записи в базе данных или файлы, мешающие удалению.
- Ошибки в самом плагине, приводящие к сбоям.
Понимание причины поможет выбрать правильный способ удаления.
Удаление плагина вручную через FTP или файловый менеджер
Один из самых прямых способов – удалить папку с плагином из wp-content/plugins/. Для этого:
- Подключитесь к серверу через FTP-клиент (например, FileZilla) или используйте файловый менеджер в панели хостинга.
- Перейдите в директорию
wp-content/plugins/. - Найдите папку плагина, который хотите удалить.
- Удалите её полностью.
Этот метод удалит файлы плагина, но не очистит базу данных и не снимет возможные настройки плагина. Поэтому важно дополнительно проверить и удалить остаточные данные.
Удаление остаточных данных из базы данных
Многие плагины создают собственные таблицы или записи в таблицах WordPress. Их удаление вручную требует аккуратности.
Для начала подключитесь к базе данных через phpMyAdmin или аналогичный инструмент и выполните поиск по имени плагина, например, по префиксу таблиц или опциям.
Пример запроса для удаления опции:
DELETE FROM wp_options WHERE option_name LIKE '%wpkit_plugin_option%';Также можно удалить пользовательские таблицы, если уверены, что они принадлежат плагину:
DROP TABLE IF EXISTS wpkit_custom_table;Обязательно сделайте резервную копию базы перед такими операциями.
Использование WP-CLI для удаления плагинов
Если у вас есть доступ к командной строке на сервере, WP-CLI — мощный инструмент для управления WordPress.
Удалить плагин можно командой:
wp plugin delete plugin-slugГде plugin-slug — папка плагина. WP-CLI удалит файлы и записи о плагине из базы.
Если плагин активен, сначала нужно его деактивировать:
wp plugin deactivate plugin-slugWP-CLI помогает обойти ограничения админки и работает быстрее.
Пример функции удаления плагина через PHP
Иногда полезно написать кастомный скрипт для удаления плагина программно. Ниже пример функции wpkitRemovePlugin(), которая деактивирует и удаляет плагин по его слагу.
function wpkitRemovePlugin($plugin_slug) {
if (!function_exists('deactivate_plugins')) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
if (is_plugin_active($plugin_slug)) {
deactivate_plugins($plugin_slug);
}
$plugin_dir = WP_PLUGIN_DIR . '/' . dirname($plugin_slug);
if (is_dir($plugin_dir)) {
// Рекурсивное удаление папки плагина
wpkitRemoveDir($plugin_dir);
return true;
}
return false;
}
function wpkitRemoveDir($dir) {
if (!is_dir($dir)) return;
$files = array_diff(scandir($dir), array('.', '..'));
foreach ($files as $file) {
$path = $dir . DIRECTORY_SEPARATOR . $file;
if (is_dir($path)) {
wpkitRemoveDir($path);
} else {
unlink($path);
}
}
rmdir($dir);
}Эту функцию можно вызвать из плагина или темы, передав слаг плагина, например: wpkitRemovePlugin('akismet/akismet.php');
Плагины для удаления плагинов и очистки данных
Существуют плагины, которые помогают удалить другие плагины и очищают остаточные данные. Вот несколько полезных:
- Plugins Garbage Collector — сканирует базу на наличие данных от удалённых плагинов.
- Advanced Database Cleaner — удаляет неиспользуемые таблицы и записи.
- WP Reset — сбрасывает сайт, но может использоваться для удаления плагинов и очистки.
Используйте их с осторожностью и всегда делайте резервные копии.
Рекомендации по безопасности при удалении плагинов
При удалении плагинов, особенно вручную или через код, важно соблюдать правила безопасности:
- Всегда делайте резервную копию файлов и базы данных.
- Проверяйте права доступа к файлам и папкам.
- Деактивируйте плагин перед удалением.
- Проверяйте, нет ли зависимостей от удаляемого плагина.
- При работе с базой данных используйте безопасные инструменты и избегайте прямого редактирования без понимания последствий.
Следуя этим рекомендациям, вы избежите большинства проблем при удалении даже самых «упрямых» плагинов.