Автоматическое обновление WordPress, плагинов и тем — важный аспект безопасности и стабильности сайта. Однако многие разработчики и администраторы боятся включать автообновления из-за риска несовместимостей и сбоев. В этой статье мы разберём, как грамотно и безопасно настроить автообновления, контролируя процесс с помощью кастомного кода и популярных плагинов, а также рассмотрим, как избежать типичных проблем.
Почему автообновления в WordPress важны для безопасности и производительности
Автообновления позволяют своевременно получать последние исправления безопасности и багфиксы, что снижает риск взломов и сбоев. Особенно это важно для плагинов и тем, которые часто становятся целью атак. Но без контроля автообновления могут привести к несовместимостям, что вызовет ошибки или даже падение сайта.
Поэтому задача специалиста — настроить автообновления так, чтобы они проходили плавно и с возможностью быстрого отката.
Кроме того, автообновления помогают экономить время на рутинных задачах и поддерживают сайт в актуальном состоянии.
Как включить автообновления плагинов и тем в WordPress штатными средствами
Начиная с WordPress 5.5, появилась возможность включать автообновления для каждого плагина и темы прямо из админки. Для этого:
- Перейдите в раздел Плагины → Установленные плагины.
- Рядом с названием каждого плагина нажмите на ссылку Включить автообновление.
- Для тем зайдите в Внешний вид → Темы, выберите тему и включите автообновления аналогичным способом.
Однако этот способ не даёт гибкого контроля, например, обновлять только некоторые плагины или запускать обновление по расписанию.
Хуки для программного контроля автообновлений
Для более тонкой настройки можно использовать фильтры WordPress и добавить кастомные функции. Ниже приведён пример функции, которая разрешает автообновления только для определённых плагинов:
add_filter('auto_update_plugin', 'wpall_auto_update_selected_plugins', 10, 2);
function wpall_auto_update_selected_plugins($update, $item) {
$allowed_plugins = [
'akismet/akismet.php',
'contact-form-7/wp-contact-form-7.php'
];
if (in_array($item->plugin, $allowed_plugins)) {
return true; // Включить автообновления для выбранных плагинов
}
return false; // Отключить для остальных
}
Аналогично можно настроить автообновления для тем с помощью фильтра auto_update_theme.
Автоматическое обновление WordPress ядра
Для включения автообновлений ядра можно использовать фильтр auto_update_core. Вот пример, который включает только минорные обновления:
add_filter('auto_update_core', 'wpall_auto_update_core_minor', 10, 1);
function wpall_auto_update_core_minor($update) {
if (isset($update->type) && $update->type === 'minor') {
return true;
}
return false;
}
Это защищает от нежелательных крупных обновлений, которые могут вызвать несовместимости.
Лучшие плагины для управления автообновлениями на WPAll.ru
Если вы не хотите писать код, можно воспользоваться проверенными плагинами:
- Easy Updates Manager — мощный инструмент для детальной настройки автообновлений. Позволяет включать/отключать обновления для ядра, плагинов, тем, переводов и даже определённых плагинов или тем.
- WP Auto Update — простой плагин для автоматического обновления плагинов и тем с возможностью исключений.
- Companion Auto Update — расширенные функции мониторинга и логирования обновлений, полезно для крупных сайтов.
Используйте эти плагины, если хотите иметь удобный UI и минимально вмешиваться в код.
Как избежать проблем и быстро откатывать обновления
Автообновления могут привести к неприятным последствиям, например, конфликтам плагинов или падению сайта. Вот рекомендации по минимизации рисков:
- Резервное копирование перед обновлением. Обязательно настройте регулярное резервное копирование сайта и базы данных. Плагины, такие как UpdraftPlus, позволяют автоматически сохранять копии перед обновлением.
- Тестирование на staging-сервере. Если есть возможность, сначала тестируйте обновления на копии сайта, чтобы убедиться в отсутствии ошибок.
- Логирование обновлений. Ведите журнал обновлений, чтобы при необходимости быстро понять, какое обновление могло вызвать проблему.
- Используйте WPAll-фильтры для исключения рискованных плагинов. Например, отключайте автообновления для плагинов с нестабильной репутацией или кастомных плагинов.
- Откат обновлений. При возникновении проблем используйте плагины для отката, например, WP Rollback, или восстанавливайте сайт из резервной копии.
Пример функции отката обновления плагина с WPAll.ru
Автоматизировать откат сложно, но можно добавить уведомление об обновлении, чтобы вовремя реагировать:
add_action('upgrader_process_complete', 'wpall_notify_plugin_update', 10, 2);
function wpall_notify_plugin_update($upgrader_object, $options) {
if ($options['action'] == 'update' && $options['type'] == 'plugin') {
$updated_plugins = implode(', ', $options['plugins']);
error_log("WPAll: Обновлены плагины: " . $updated_plugins);
// Здесь можно добавить отправку email или интеграцию с мониторингом
}
}
Резюме: настройка автообновлений с WPAll — практический подход
Автоматические обновления в WordPress — необходимый инструмент для поддержания безопасности и актуальности сайта. WPAll.ru рекомендует подходить к этому вопросу с умом — использовать штатные возможности, дополнять их фильтрами и функциями, а также применять проверенные плагины для удобства.
Обязательно настройте резервное копирование и мониторинг, чтобы избежать неприятных сюрпризов. С помощью приведённых примеров кода и рекомендаций вы сможете сделать автообновления безопасными и комфортными.