Управление большим количеством плагинов — частая задача администраторов WordPress-сайтов. Неиспользуемые и устаревшие плагины не только замедляют сайт, но и создают угрозу безопасности. В этой статье мы разберём, как автоматизировать процесс поиска и отключения таких плагинов, используя пример кода и готовые решения.
Почему важно отключать неиспользуемые плагины
Плагины, которые не используются, но остаются активными, могут негативно влиять на производительность сайта. Они потребляют ресурсы сервера, увеличивают время загрузки страниц и повышают риск уязвимостей. Даже неактивные плагины в базе данных могут сохранять свои настройки и создавать дополнительную нагрузку.
Регулярная проверка и отключение ненужных плагинов помогает:
- Улучшить скорость загрузки сайта.
- Повысить безопасность за счёт уменьшения поверхности атаки.
- Облегчить сопровождение и обновление сайта.
Как определить неиспользуемые плагины
Определение неиспользуемых плагинов — это не всегда тривиальная задача. Некоторые плагины могут быть активны, но задействованы только на отдельных страницах или по условию. Вот несколько подходов:
Анализ активности плагинов
Можно использовать логи сервера или плагин Query Monitor для анализа, какие плагины вызывают свои функции на страницах сайта.
Мониторинг загрузки скриптов и стилей
Плагины, которые не загружают свои ресурсы, скорее всего, не используются активно. Для анализа удобно использовать инструменты разработчика браузера.
Использование специализированных плагинов
Плагины типа Clearfy Pro помогают оптимизировать сайт и выявлять лишние плагины.
Автоматизация отключения неиспользуемых плагинов с помощью кода
Предлагаю пример функции, которая проверит активные плагины и отключит те, которые не использовались более 30 дней. Для хранения активности будем использовать опции базы данных, которые нужно обновлять при вызове любого хука плагина.
Шаг 1. Фиксация активности плагина
Создадим функцию wpdetect_update_plugin_activity, которая обновляет отметку времени активности плагина:
function wpdetect_update_plugin_activity($plugin_slug) {
update_option('wpdetect_plugin_last_active_' . $plugin_slug, current_time('timestamp'));
}Эту функцию нужно вызывать в хуках, которые взаимодействуют с плагином. Например, если плагин добавляет виджет, можно обновлять активность при отображении.
Шаг 2. Скрипт отключения плагинов
Теперь создадим функцию wpdetect_deactivate_unused_plugins, которая проверяет дату последней активности и отключает плагин, если прошло более 30 дней:
function wpdetect_deactivate_unused_plugins() {
if (!current_user_can('activate_plugins')) {
return;
}
$active_plugins = get_option('active_plugins', []);
$threshold = 30 * DAY_IN_SECONDS;
foreach ($active_plugins as $plugin_file) {
$slug = dirname($plugin_file);
$last_active = get_option('wpdetect_plugin_last_active_' . $slug, 0);
if (time() - $last_active > $threshold) {
deactivate_plugins($plugin_file);
error_log('Plugin deactivated by WPDetect due to inactivity: ' . $plugin_file);
}
}
}Для запуска автоматизации можно использовать WP-Cron, например, задать ежедневный запуск:
if (!wp_next_scheduled('wpdetect_daily_plugin_check')) {
wp_schedule_event(time(), 'daily', 'wpdetect_daily_plugin_check');
}
add_action('wpdetect_daily_plugin_check', 'wpdetect_deactivate_unused_plugins');Использование плагинов для автоматизации управления плагинами
Если не хочется писать код, можно использовать готовые решения:
- Clearfy Pro — мощный инструмент для оптимизации и управления плагинами, включая отключение неиспользуемых.
- Plugin Organizer — позволяет контролировать загрузку плагинов на разных страницах и отключать их там, где они не нужны.
- WP Activity Log — помогает отследить активность плагинов и пользователей.
Эти инструменты можно комбинировать с приведённым выше кодом для создания надежной системы управления плагинами.
Советы по безопасному отключению плагинов
Прежде чем полностью отключать плагин, рекомендуется:
- Сделать резервную копию сайта и базы данных.
- Проверить зависимости — не используется ли плагин другими компонентами.
- Отключать плагины поэтапно и тестировать работу сайта.
Также полезно информировать команду или владельца сайта о предстоящих изменениях, чтобы избежать неожиданностей.
Заключение
Автоматизация отключения неиспользуемых плагинов позволяет поддерживать WordPress-сайт в оптимальном состоянии без лишних усилий. Комбинируйте мониторинг активности, WP-Cron и инструменты управления, чтобы защитить и ускорить ваш сайт.
Для более глубокого управления рекомендую ознакомиться с Clearfy Pro от WPSHOP — этот плагин существенно упрощает задачи оптимизации и очистки.