В процессе эксплуатации сайта на WordPress количество установленных плагинов со временем растёт. Многие плагины со временем перестают использоваться, но продолжая работать, они могут негативно влиять на производительность и безопасность сайта. Ручное отслеживание и отключение таких плагинов — трудоёмкая задача, особенно для больших проектов. В этой статье разберём, как автоматизировать отключение неиспользуемых плагинов в WordPress с помощью кода и готовых решений.
Почему важно отключать неиспользуемые плагины
Неиспользуемые плагины — это потенциальные проблемы:
- Безопасность: устаревшие плагины могут содержать уязвимости.
- Производительность: даже неактивные плагины могут замедлять работу сайта из-за остаточных данных или процессов.
- Совместимость: конфликты с другими плагинами или обновлениями WordPress.
- Административный хаос: много неиспользуемых плагинов затрудняет управление сайтом.
Автоматизация отключения поможет поддерживать порядок и снизить риски.
Как определить неиспользуемые плагины
Определить неиспользуемый плагин можно по нескольким критериям:
- Плагин активен, но функционал давно не используется.
- Плагин неактивен, но установлен и занимает место.
- Плагин не обновлялся длительное время (например, более года).
- Плагин не имеет активных настроек и не создаёт контент.
Для отслеживания можно использовать плагин Clearfy Pro, который помогает анализировать установленные расширения и оптимизировать их использование.
Автоматизация отключения с помощью WP-Cron и кода
Создадим функцию, которая будет проверять плагин на неактивность и отключать его через WP-Cron. Это позволит регулярно запускать проверку без участия администратора.
Пример функции для отключения плагина
function wpdetect_deactivate_unused_plugins() {
// Получаем список всех плагинов
$all_plugins = get_plugins();
// Получаем список активных плагинов
$active_plugins = get_option('active_plugins', array());
foreach ($all_plugins as $plugin_file => $plugin_data) {
// Если плагин не активен, отключаем
if (!in_array($plugin_file, $active_plugins)) {
// Можно дополнительно проверить дату обновления плагина
// Для примера просто выводим в лог
error_log('Плагин неактивен и может быть удалён: ' . $plugin_file);
}
}
}
// Регистрируем задачу WP-Cron
if (!wp_next_scheduled('wpdetect_deactivate_unused_plugins_cron')) {
wp_schedule_event(time(), 'daily', 'wpdetect_deactivate_unused_plugins_cron');
}
add_action('wpdetect_deactivate_unused_plugins_cron', 'wpdetect_deactivate_unused_plugins');
В этом коде мы проверяем все плагины и логируем неактивные. Для реального отключения неактивных плагинов нужно добавить удаление или деактивацию, но будьте осторожны — лучше сначала уведомлять администратора.
Расширение логики: отключение плагинов без обновлений
Можно дополнить функцию проверкой даты последнего обновления плагина, используя метаданные с get_plugins() и сравнивая с текущей датой. Это поможет выявлять заброшенные плагины.
Использование плагина Clearfy Pro для автоматизации
Clearfy Pro — мощный инструмент для оптимизации WordPress. В нём есть модуль для управления плагинами, который позволяет:
- Автоматически отключать неактивные и устаревшие плагины.
- Отслеживать плагины с уязвимостями и предлагать их отключение.
- Настраивать периодичность проверок и действия.
Для установки и настройки Clearfy Pro можно воспользоваться официальной инструкцией на сайте WPSHOP.
Как уведомлять администратора о планируемом отключении
Важно не отключать плагины без предупреждения. Можно расширить функцию, чтобы отправлять email с перечнем плагинов на отключение. Пример:
function wpdetect_notify_admin_about_unused_plugins() {
$all_plugins = get_plugins();
$active_plugins = get_option('active_plugins', array());
$unused_plugins = array();
foreach ($all_plugins as $plugin_file => $plugin_data) {
if (!in_array($plugin_file, $active_plugins)) {
$unused_plugins[] = $plugin_data['Name'] . ' (' . $plugin_file . ')';
}
}
if (!empty($unused_plugins)) {
$to = get_option('admin_email');
$subject = 'Список неиспользуемых плагинов WordPress';
$message = "Следующие плагины неактивны и могут быть отключены:\n" . implode("\n", $unused_plugins);
wp_mail($to, $subject, $message);
}
}
add_action('wpdetect_deactivate_unused_plugins_cron', 'wpdetect_notify_admin_about_unused_plugins');
Таким образом, администратор будет вовремя получать информацию и решать, какие плагины оставить, а какие отключить.
Безопасность и резервное копирование перед отключением
Перед автоматическим отключением плагинов всегда делайте резервную копию сайта и базы данных. Для автоматизации резервных копий можно использовать плагин WPDetect, который умеет создавать и хранить резервные копии автоматически.
Выводы и рекомендации
Автоматизация отключения неиспользуемых плагинов помогает поддерживать WordPress в чистоте и безопасности. Для этого:
- Регулярно анализируйте список плагинов.
- Используйте WP-Cron и кастомные функции для автоматизации.
- Подключайте уведомления для администратора.
- Применяйте готовые решения, такие как Clearfy Pro и WPDetect.
- Не забывайте про резервное копирование.
Следуя этим рекомендациям, вы снизите риски и улучшите производительность сайта.