Иногда при работе с WordPress возникает ситуация, когда стандартные методы удаления плагинов через административную панель не работают. Плагин может быть заблокирован, неактивен, или выдает ошибку при попытке деактивации и удаления. Это создает риск безопасности, а также загромождает систему. В этой статье мы подробно разберем, как удалить такие плагины вручную и автоматически, используя плагины и код.
Почему плагины могут не удаляться стандартным способом
Ситуации, когда плагины не удаляются через админку WordPress, возникают по нескольким причинам:
- Поврежденные файлы плагина — если в каталоге плагина отсутствуют важные файлы, WordPress может не корректно обработать его удаление.
- Ошибки в базе данных — когда записи о плагине повреждены или зафиксированы некорректно.
- Проблемы с правами доступа — если файловая система не позволяет удалить папку плагина.
- Конфликты с другими плагинами или темой — могут блокировать процесс деактивации.
Понимание причины поможет выбрать правильный метод удаления.
Удаление заблокированного плагина вручную через FTP или файловый менеджер
Самый надежный способ удалить не удаляемый плагин — вручную удалить его папку из каталога wp-content/plugins/. Для этого выполните следующие шаги:
- Подключитесь к серверу через FTP-клиент (например, FileZilla) или воспользуйтесь файловым менеджером хостинга.
- Перейдите в папку
wp-content/plugins/. - Найдите папку плагина, который необходимо удалить.
- Удалите эту папку полностью.
- Перейдите в админку WordPress и очистите кеш, если используете кэш-плагины.
После удаления файлов плагина обязательно нужно проверить и очистить записи из базы данных, чтобы избежать ошибок.
Очистка базы данных от записей плагина
Некоторые плагины создают собственные таблицы или опции в базе данных, которые не удаляются при удалении файлов. Чтобы полностью очистить систему, нужно вручную удалить эти записи.
Для этого:
- Подключитесь к базе данных через phpMyAdmin или другой инструмент управления.
- Выполните запросы для удаления опций плагина, например:
DELETE FROM wp_options WHERE option_name LIKE '%wptemplates_plugin_slug%';- Если плагин создавал свои таблицы, удалите их:
DROP TABLE IF EXISTS wp_plugin_custom_table;Важно: перед любыми изменениями в базе данных сделайте резервную копию.
Удаление плагинов с помощью специализированных плагинов
Для пользователей, не желающих работать напрямую с файлами и базой данных, существуют плагины, которые помогают удалить заблокированные плагины:
- WP Reset — этот плагин позволяет сбросить все изменения или удалить отдельные плагины и их данные.
- Plugins Garbage Collector — сканирует и удаляет остаточные данные плагинов.
- Advanced Database Cleaner — помогает очистить базу данных от мусора, включая данные удаленных плагинов.
Эти инструменты облегчают процесс удаления, но требуют осторожности и резервного копирования.
Пример функции для удаления плагина программно (wptemplates_delete_plugin)
Если вы хотите автоматически деактивировать и удалить плагин через код, можно использовать следующий пример функции. Она деактивирует плагин и удаляет его файлы.
function wptemplates_delete_plugin($plugin_slug) {
if (!function_exists('deactivate_plugins')) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
$plugin_file = $plugin_slug . '/' . $plugin_slug . '.php';
if (is_plugin_active($plugin_file)) {
deactivate_plugins($plugin_file);
}
$plugin_dir = WP_PLUGIN_DIR . '/' . $plugin_slug;
if (is_dir($plugin_dir)) {
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($plugin_dir, RecursiveDirectoryIterator::SKIP_DOTS),
RecursiveIteratorIterator::CHILD_FIRST
);
foreach ($files as $fileinfo) {
$todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink');
$todo($fileinfo->getRealPath());
}
rmdir($plugin_dir);
}
}Используйте функцию так:
wptemplates_delete_plugin('plugin-folder-name');Этот подход полезен для администраторов и разработчиков, автоматизирующих управление плагинами.
Рекомендации по безопасности при удалении плагинов
Удаление плагинов — процесс, который требует аккуратности, чтобы не нарушить работу сайта. Вот несколько советов:
- Всегда делайте резервную копию файлов и базы данных перед удалением.
- Проверяйте, что плагин не используется другими компонентами сайта.
- Удаляйте остаточные данные плагина из базы данных, чтобы не создавать «мусор».
- Используйте проверенные инструменты и плагины для удаления.
- После удаления плагина проверяйте работу сайта, логи ошибок и производительность.
Соблюдение этих рекомендаций позволит вам безопасно и эффективно управлять плагинами WordPress.