Автоматическое обновление плагинов в WordPress — важный аспект поддержки безопасности и функциональности сайта. Хотя в последних версиях WordPress появилась встроенная возможность автоматического обновления плагинов, она может работать не всегда идеально или не подходить под ваши задачи. В этой статье мы подробно разберём, как настроить автоматические обновления плагинов программно, используя фильтры и хуки WordPress, а также рассмотрим примеры кода для тонкой настройки обновлений.
Почему стоит настраивать автоматические обновления плагинов
Обновления плагинов часто содержат исправления ошибок, патчи безопасности и новые функции. Ручное обновление требует времени и внимания, а пропуск обновлений может привести к уязвимостям и конфликтам. Автоматизация процесса снижает риски и позволяет поддерживать сайт в актуальном состоянии без лишних усилий.
Однако автоматические обновления могут вызвать несовместимости или поломки, если плагин обновляется без тестирования. Поэтому важно контролировать процесс и при необходимости исключать из автоматического обновления критичные плагины.
Встроенная поддержка автоматических обновлений плагинов в WordPress
Начиная с версии 5.5, WordPress поддерживает автоматическое обновление плагинов через админ-панель. Для включения нужно перейти в раздел Плагины, нажать на ссылку Автоматические обновления рядом с нужным плагином.
Но этот способ не всегда удобен для массовых сайтов или разработчиков, которые хотят управлять обновлениями программно — например, включать их только для выбранных плагинов, отключать для других или логировать процесс.
Как программно включить автоматическое обновление плагинов
Для управления автоматическими обновлениями плагинов существует фильтр auto_update_plugin, который позволяет задать логику обновления для каждого плагина.
Пример простой функции, которая включает автоматическое обновление для всех плагинов:
add_filter('auto_update_plugin', 'wpcode_auto_update_all_plugins', 10, 2);
function wpcode_auto_update_all_plugins($update, $item) {
return true; // всегда обновлять
}
Здесь $item — объект с информацией о плагине, включая его slug, имя и другие данные.
Как включить обновление только для определённых плагинов
Часто нужно обновлять автоматически не все плагины, а только проверенные. Например, обновлять только плагины Clearfy Pro и WPGPT, которые вы используете на сайте.
add_filter('auto_update_plugin', 'wpcode_auto_update_selected_plugins', 10, 2);
function wpcode_auto_update_selected_plugins($update, $item) {
$plugins_to_update = [
'clearfy-pro/clearfy-pro.php',
'wpgpt/wpgpt.php'
];
if (in_array($item->plugin, $plugins_to_update)) {
return true;
}
return false;
}
Здесь $item->plugin — путь к файлу плагина относительно папки wp-content/plugins.
Логирование и уведомления об обновлениях
Для контроля процесса полезно вести логи и получать уведомления при обновлении плагинов. Можно использовать хук upgrader_process_complete, который срабатывает после завершения обновления.
add_action('upgrader_process_complete', 'wpcode_log_plugin_update', 10, 2);
function wpcode_log_plugin_update($upgrader_object, $options) {
if ($options['type'] === 'plugin' && $options['action'] === 'update') {
$updated_plugins = $options['plugins'];
foreach ($updated_plugins as $plugin) {
error_log('Плагин обновлён: ' . $plugin);
// Здесь можно добавить отправку email или интеграцию с другими сервисами
}
}
}
Так вы сможете получать детальную информацию о том, какие плагины были обновлены и когда.
Использование плагинов для автоматизации обновлений
Если хотите готовое решение с расширенными возможностями, рассмотрите плагин Clearfy Pro. Он позволяет управлять обновлениями, отключать неиспользуемые плагины и оптимизировать работу сайта.
Преимущества программного управления
- Гибкость: можно обновлять только нужные плагины.
- Автоматизация: настройка один раз и никаких ручных действий.
- Контроль: логирование и уведомления о процессах обновления.
- Безопасность: можно исключить критичные плагины из автоматического обновления.
Как отключить автоматические обновления для отдельных плагинов
Если вам нужно наоборот исключить определённые плагины из автоматического обновления, можно сделать так:
add_filter('auto_update_plugin', 'wpcode_disable_auto_update_for_plugins', 10, 2);
function wpcode_disable_auto_update_for_plugins($update, $item) {
$plugins_to_exclude = [
'some-plugin/some-plugin.php',
'another-plugin/another-plugin.php'
];
if (in_array($item->plugin, $plugins_to_exclude)) {
return false; // отменяем автоматическое обновление
}
return $update;
}
Так вы защитите важные плагины от нежелательных обновлений без вашего контроля.
Заключение
Автоматическое обновление плагинов в WordPress — мощный инструмент, который при правильной настройке значительно облегчает поддержку сайта. Используйте фильтр auto_update_plugin для гибкого управления, добавляйте логирование и уведомления для контроля и применяйте исключения, чтобы избежать проблем с несовместимостью.
Если хотите расширенные возможности, обратите внимание на Clearfy Pro — удобный плагин для комплексной оптимизации и управления обновлениями.