Плагины — это одна из ключевых особенностей WordPress, позволяющая расширять функциональность сайта без глубокого программирования. Но иногда количество установленных плагинов растет, и часть из них перестает использоваться или становится ненужной. Это не только захламляет админ-панель, но и может негативно сказываться на безопасности, скорости и стабильности сайта. В этой статье подробно рассмотрим, как безопасно удалить или заблокировать неиспользуемые плагины, а также приведем примеры кода для автоматизации процесса.
Почему важно удалять или блокировать неиспользуемые плагины
Накопление неиспользуемых плагинов — частая проблема у владельцев WordPress-сайтов. Вот несколько причин, почему стоит с этим бороться:
- Безопасность: устаревшие плагины часто содержат уязвимости, которые могут быть использованы злоумышленниками.
- Производительность: даже отключенные плагины могут создавать нагрузку на базу данных и файловую систему.
- Обновления и конфликты: чем больше плагинов, тем выше риск конфликтов и ошибок при обновлении.
- Управляемость: проще поддерживать сайт с меньшим количеством активных компонентов.
Удаление — лучший вариант, но иногда плагины нужно сохранить отключенными с возможностью быстрого включения. В таких случаях поможет блокировка загрузки плагина.
Как вручную удалить неиспользуемые плагины через админку и FTP
Самый простой способ — через админ-панель WordPress:
- Перейдите в раздел Плагины → Установленные плагины.
- Выключите все плагины, которые не используете, с помощью кнопки «Деактивировать».
- После отключения появится кнопка «Удалить», нажмите её для полного удаления.
Если по каким-то причинам админка недоступна, можно удалить плагины через FTP или файловый менеджер хостинга:
- Подключитесь к сайту через FTP.
- Перейдите в папку
wp-content/plugins. - Найдите папку с нужным плагином и удалите её.
Однако будьте осторожны: удаление плагина удалит и все связанные с ним файлы, включая данные, если плагин не предусмотрел их сохранение в отдельной таблице.
Блокировка загрузки плагинов через functions.php
Иногда нужно временно «заблокировать» плагин — отключить его загрузку, не удаляя файлов. Для этого можно использовать фильтр option_active_plugins в файле темы functions.php или в собственном плагине. Рассмотрим пример кода с префиксом wpall_:
function wpall_block_plugins($plugins) {
// Список плагинов для блокировки: указываем папку и основной файл плагина
$block_list = [
'hello-dolly/hello.php',
'akismet/akismet.php'
];
foreach ($block_list as $block_plugin) {
$key = array_search($block_plugin, $plugins);
if ($key !== false) {
unset($plugins[$key]);
}
}
return $plugins;
}
add_filter('option_active_plugins', 'wpall_block_plugins');
Этот код при загрузке сайта удалит из списка активных плагинов указанные в $block_list, effectively блокируя их запуск без удаления файлов.
Автоматическая блокировка плагинов по условию
Можно расширить функцию для динамической блокировки, например, по IP, роли пользователя или URL:
function wpall_conditional_block_plugins($plugins) {
$block_list = ['example-plugin/example.php'];
// Блокируем плагин для всех, кроме администраторов
if (!current_user_can('administrator')) {
foreach ($block_list as $block_plugin) {
$key = array_search($block_plugin, $plugins);
if ($key !== false) {
unset($plugins[$key]);
}
}
}
return $plugins;
}
add_filter('option_active_plugins', 'wpall_conditional_block_plugins');
Это удобно, если нужно временно отключить плагин для обычных пользователей, но оставить активным для админов.
Плагины для управления и очистки неиспользуемых плагинов
Существуют готовые решения, которые помогают анализировать и удалять лишние плагины:
- Plugin Organizer: позволяет управлять порядком загрузки плагинов и отключать их для отдельных страниц или ролей.
- WP Plugin Manager: помогает быстро включать и отключать плагины массово.
- Advanced Database Cleaner: удаляет остаточные данные от удаленных плагинов, что важно для поддержания чистоты базы.
Используя плагины, не забывайте делать резервные копии сайта перед массовыми изменениями.
Как автоматизировать удаление неиспользуемых плагинов с помощью WP-CLI
Если у вас есть доступ к серверу и WP-CLI установлен, можно автоматизировать процесс удаления:
# Список активных плагинов
wp plugin list --status=active
# Отключить плагин
wp plugin deactivate plugin-slug
# Удалить плагин
wp plugin delete plugin-slug
Для удаления всех неактивных плагинов можно использовать команду:
wp plugin delete $(wp plugin list --status=inactive --field=name)
Это быстро и удобно, особенно при большом количестве плагинов.
Советы по безопасному удалению и блокировке плагинов
Чтобы избежать проблем после удаления или блокировки плагина, придерживайтесь следующих рекомендаций:
- Перед удалением всегда делайте резервную копию сайта и базы данных.
- Проверьте, не зависит ли функционал сайта от плагина, особенно если он связан с кастомными типами записей или шорткодами.
- Если плагин долго не обновлялся или вызывает ошибки, лучше сразу удалить, а не просто отключать.
- Используйте блокировку плагинов через фильтр
option_active_pluginsдля временного отключения без удаления. - Проверяйте работу сайта после удаления или блокировки, чтобы убедиться, что ничего не сломалось.