В процессе эксплуатации сайтов на WordPress часто накапливается множество плагинов, которые со временем перестают использоваться. Они не только занимают место на сервере, но и могут негативно влиять на безопасность и производительность сайта. В этой статье мы разберём, как настроить автоматическое удаление неиспользуемых плагинов, используя собственные функции и готовые решения.
Почему важно удалять неиспользуемые плагины в WordPress
Каждый установленный плагин — это дополнительный код, который потенциально может содержать уязвимости или конфликты с другими компонентами сайта. Даже неактивные плагины могут быть целью для взлома, если их код содержит уязвимости. Помимо безопасности, неиспользуемые плагины занимают дисковое пространство, увеличивают время резервного копирования и усложняют управление сайтом.
Регулярная очистка плагинов — это хороший способ поддерживать сайт в оптимальном состоянии и снизить риски.
Как определить неиспользуемые плагины: критерии и инструменты
Прежде чем удалять, необходимо понять, какие плагины считаются неиспользуемыми. Основные критерии:
- Плагины, которые неактивны более определённого времени (например, 30 дней).
- Плагины, которые не вызывают никаких функций и хуков в течение текущей сессии.
- Плагины, которые вы не планируете использовать в ближайшем будущем.
Для автоматизации сбора информации можно использовать плагины мониторинга активности, например, Clearfy Pro, который помогает выявлять и отключать неиспользуемые плагины и модули.
Реализация автоматического удаления неактивных плагинов с помощью кода
Ниже приведён пример функции wptask_remove_inactive_plugins, которая автоматически удаляет плагины, которые неактивны более 30 дней. Для работы функции мы используем хук wp_loaded и информацию о последних изменениях плагинов.
function wptask_remove_inactive_plugins() {
if ( ! current_user_can('manage_options') ) {
return; // Проверка прав
}
require_once ABSPATH . 'wp-admin/includes/plugin.php';
$inactive_plugins = get_option('recently_deactivated_plugins', array());
$threshold = 30 * DAY_IN_SECONDS; // 30 дней
$now = time();
foreach ($inactive_plugins as $plugin_file => $deactivated_time) {
if (($now - $deactivated_time) > $threshold) {
if (is_plugin_inactive($plugin_file)) {
delete_plugins(array($plugin_file));
unset($inactive_plugins[$plugin_file]);
}
}
}
update_option('recently_deactivated_plugins', $inactive_plugins);
}
add_action('wp_loaded', 'wptask_remove_inactive_plugins');
// Хук для сохранения времени деактивации плагина
function wptask_track_plugin_deactivation($plugin) {
$inactive_plugins = get_option('recently_deactivated_plugins', array());
$inactive_plugins[$plugin] = time();
update_option('recently_deactivated_plugins', $inactive_plugins);
}
add_action('deactivated_plugin', 'wptask_track_plugin_deactivation');Этот код хранит время деактивации плагинов в отдельной опции и при каждом заходе на сайт проверяет, не пора ли удалить старые неактивные плагины.
Использование плагинов для автоматизации управления плагинами
Если не хочется вникать в код, можно воспользоваться специализированными плагинами, которые помогают контролировать установленные расширения:
- Clearfy Pro — позволяет отключать и удалять неиспользуемые плагины, а также оптимизировать работу сайта в целом.
- Plugin Organizer — помогает управлять порядком загрузки плагинов и отключать их на отдельных страницах, что косвенно помогает выявлять неиспользуемые.
- WP-Optimize — не удаляет плагины, но помогает оптимизировать базу данных и удалять мусор, включая следы от удалённых плагинов.
Рекомендуется всегда делать резервные копии перед массовым удалением плагинов. Для автоматической резервной копии подойдёт плагин Backup Pro, который интегрируется с WordPress и позволяет быстро восстановить сайт в случае ошибки.
Рекомендации по безопасности при автоматическом удалении плагинов
Автоматизация — мощный инструмент, но требует аккуратности. Вот основные рекомендации:
- Всегда проверяйте права пользователей, запускающих удаление. В нашем примере функция доступна только администраторам.
- Делайте резервные копии до удаления, чтобы вернуть сайт в исходное состояние при необходимости.
- Обновляйте WordPress и плагины, чтобы избежать уязвимостей.
- Не удаляйте плагины, которые могут использоваться отложенно или в зависимости от определённых условий.
- Тестируйте автоматические функции сначала на тестовом сайте.
Выводы и полезные советы
Автоматическое удаление неиспользуемых плагинов — это реальная возможность поддерживать ваш WordPress-сайт в чистоте и безопасности. При правильной настройке вы избавитесь от лишнего балласта, повысите производительность и снизите риски безопасности.
Если хотите более гибкие решения, советую обратить внимание на Clearfy Pro, который уже содержит готовые инструменты для оптимизации сайта и управления плагинами.