В процессе эксплуатации WordPress-сайта количество установленных плагинов может со временем расти, и не все из них используются постоянно. Неиспользуемые плагины занимают место, замедляют сайт и могут стать источником уязвимостей. В этой статье мы подробно рассмотрим, как автоматически отключать плагины, которые долго не использовались, используя кастомный код и рекомендации по безопасности.
Почему важно отключать неиспользуемые плагины
Плагины – мощный инструмент для расширения функционала сайта, но с увеличением их числа растут риски:
- Безопасность: неактуальные плагины могут содержать уязвимости, которые злоумышленники используют для взлома.
- Производительность: даже неактивные плагины могут влиять на скорость загрузки, особенно если они оставляют следы в базе данных или файловой системе.
- Управление: большое количество плагинов усложняет поддержку сайта и обновление.
Поэтому автоматизация отключения неиспользуемых плагинов поможет поддерживать сайт в актуальном и безопасном состоянии.
Как определить неиспользуемые плагины: анализ активности
Прежде чем отключать плагины, нужно понять, какие из них не используются. В WordPress нет встроенного механизма отслеживания использования плагинов, но можно анализировать следующие параметры:
- Время последнего обновления плагина.
- Время последнего вызова функций плагина через логи или хуки.
- Данные активности пользователей, если плагин связан с пользовательским взаимодействием.
Для автоматизации можно использовать фильтры и хуки WordPress, а также хранить даты последнего использования в опциях или пользовательских таблицах.
Пример записи времени использования плагина
Добавим функцию, которая будет фиксировать дату последнего использования плагина при его вызове. Например, для плагина, который добавляет шорткод:
function wpcore_track_plugin_usage() {
update_option('wpcore_plugin_last_used', current_time('timestamp'));
}
add_shortcode('wpcore_example', function() {
wpcore_track_plugin_usage();
return 'Пример вывода шорткода';
});
Таким образом, при каждом использовании шорткода мы обновляем дату в базе данных.
Автоматическое отключение плагинов по времени неиспользования
После того, как мы научились отслеживать время использования, можно написать функцию, которая будет проверять дату последнего использования и отключать плагин, если он не использовался, например, более 30 дней.
Код для автоматического отключения плагина
function wpcore_deactivate_unused_plugins() {
$unused_threshold = 30 * DAY_IN_SECONDS; // 30 дней
$last_used = get_option('wpcore_plugin_last_used', 0);
if ((time() - $last_used) > $unused_threshold) {
include_once ABSPATH . 'wp-admin/includes/plugin.php';
deactivate_plugins('wpcore-plugin-folder/wpcore-plugin-file.php');
error_log('Плагин WPCore автоматически отключен из-за неиспользования.');
}
}
add_action('admin_init', 'wpcore_deactivate_unused_plugins');
Этот код проверяет дату последнего использования и отключает плагин, если прошло больше 30 дней. Важно корректно указать путь к файлу плагина.
Практические советы и рекомендации
Перед автоматическим отключением плагинов обязательно:
- Выполните резервное копирование сайта.
- Убедитесь, что плагин не критичен для фукнционала сайта.
- Добавьте уведомление для администратора о предстоящем отключении.
- Рассмотрите возможность отправки письма с предупреждением.
Для реализации уведомлений можно использовать плагин Clearfy Pro, который позволяет управлять уведомлениями и оптимизацией WordPress.
Пример уведомления в админке перед отключением
function wpcore_notify_plugin_deactivation() {
$last_used = get_option('wpcore_plugin_last_used', 0);
$unused_threshold = 30 * DAY_IN_SECONDS;
$days_unused = (time() - $last_used) / DAY_IN_SECONDS;
if ($days_unused > 25 && current_user_can('manage_options')) {
echo '<div class="notice notice-warning is-dismissible">'
. 'Плагин WPCore не использовался более 25 дней. Он будет автоматически отключен через 5 дней.'
. '</div>';
}
}
add_action('admin_notices', 'wpcore_notify_plugin_deactivation');
Альтернативные решения и плагины для управления плагинами
Если вы не хотите писать код, доступны плагины для управления плагинами и их состоянием:
- Plugin Organizer — позволяет управлять активацией плагинов на разных страницах и условиях.
- WP Activity Log — ведет журнал активности плагинов и пользователей.
- Clearfy Pro — оптимизирует работу сайта, включая управление неиспользуемыми плагинами.
Но автоматическое отключение по времени неиспользования — редкая функция, которую часто приходится реализовывать самостоятельно с учетом специфики сайта.
Выводы и применение на практике
Автоматизация отключения неиспользуемых плагинов — эффективный способ поддерживать WordPress-сайт в порядке, обеспечивать безопасность и повышать производительность. Ключ — аккуратное отслеживание использования и информирование администраторов перед отключением.
Используйте приведённые примеры кода как основу, адаптируйте под свои задачи, а также не забывайте про резервные копии и тестирование перед внедрением на живом сайте.