Автоматическое обновление плагинов в WordPress — важный элемент безопасности и стабильности сайта. В то время как многие используют SSH-доступ для выполнения обновлений через командную строку, не всегда есть возможность или желание задействовать этот способ. В данной статье подробно рассмотрим, как реализовать автоматическое обновление плагинов WordPress средствами самого сайта, без SSH, с помощью PHP-кода и стандартных функций WordPress.
Почему важно автоматически обновлять плагины WordPress
Плагины — это сторонний код, который расширяет функциональность сайта. Они регулярно получают обновления: исправляют баги, улучшают производительность, закрывают уязвимости. Несвоевременное обновление плагинов может привести к следующим проблемам:
- Уязвимости, которые могут быть использованы злоумышленниками
- Конфликты с новой версией WordPress
- Проблемы с производительностью и совместимостью
Автоматизация обновлений помогает поддерживать сайт в актуальном состоянии без постоянного ручного контроля.
Стандартные возможности WordPress для автоматического обновления плагинов
Начиная с версии 5.5, WordPress поддерживает автоматическое обновление плагинов из административной панели. Для этого достаточно включить соответствующую опцию для каждого плагина.
Но если вы хотите полностью автоматизировать процесс или сделать это программно, можно использовать фильтры WordPress.
Включение автоматических обновлений для всех плагинов через functions.php
Добавьте следующий код в файл functions.php вашей активной темы или в свой собственный плагин:
add_filter('auto_update_plugin', '__return_true');Этот фильтр возвращает true для каждого плагина, что заставляет систему обновлять все плагины автоматически при выходе новой версии.
Выборочное автоматическое обновление плагинов
Если нужно обновлять только определённые плагины, используйте более сложную функцию:
add_filter('auto_update_plugin', 'wphost_auto_update_selected_plugins', 10, 2);
function wphost_auto_update_selected_plugins($update, $item) {
$plugins_to_update = array(
'akismet/akismet.php',
'contact-form-7/wp-contact-form-7.php'
);
if (in_array($item->plugin, $plugins_to_update)) {
return true;
}
return false;
}В массиве $plugins_to_update перечислите пути к плагинам, для которых необходимо включить автоматическое обновление.
Как реализовать оповещения об успешных и неуспешных обновлениях плагинов
Полезно знать, когда обновления прошли успешно, а когда — нет. Для этого можно использовать хуки WordPress:
add_action('upgrader_process_complete', 'wphost_update_plugins_notification', 10, 2);
function wphost_update_plugins_notification($upgrader, $options) {
if ($options['type'] === 'plugin' && $options['action'] === 'update') {
foreach ($options['plugins'] as $plugin) {
error_log('Плагин обновлён: ' . $plugin);
// Здесь можно добавить отправку email или запись в отдельный лог
}
}
}Этот пример записывает в системный лог информацию об обновлениях. Вы можете адаптировать функцию для отправки уведомлений на почту или в Telegram через сторонние сервисы.
Использование плагинов для расширенной автоматизации обновлений
Если хочется не только обновлять плагины, но и темы, ядро WordPress, а также контролировать процесс через интерфейс — есть хорошие решения:
- Clearfy Pro — удобный плагин для оптимизации и безопасности, включая гибкие настройки автообновлений.
- WPRemark — помогает управлять обновлениями и мониторить состояние сайта.
Использование таких плагинов избавит от необходимости писать собственный код и даст дополнительные возможности по контролю.
Как избежать проблем при автоматическом обновлении плагинов
Автообновление — удобно, но есть риски, если обновление ломает функционал или вызывает конфликты. Чтобы минимизировать проблемы, следуйте рекомендациям:
- Включайте автообновления только для проверенных и хорошо поддерживаемых плагинов.
- Регулярно делайте резервные копии сайта (например, с помощью WPBackup).
- Тестируйте обновления на staging-сайте перед применением на рабочем.
- Используйте уведомления об успешных и неудачных обновлениях (как показано выше).
Заключение
Добавить автоматическое обновление плагинов WordPress без использования SSH — просто и эффективно. Используйте встроенные фильтры WordPress, чтобы включить автообновления для всех или выбранных плагинов, и дополнительно подключайте уведомления для контроля процесса. При необходимости расширьте функциональность с помощью специализированных плагинов, таких как Clearfy Pro.
Таким образом, вы обеспечите безопасность и актуальность вашего сайта на WordPress без лишних затрат времени и усилий.