Автоматические обновления в WordPress — это удобный инструмент, который помогает поддерживать сайт в актуальном состоянии без вмешательства администратора. Однако у многих разработчиков и владельцев сайтов возникает потребность отключить автообновления, чтобы сохранить полный контроль над процессом обновления, избежать несовместимости плагинов или тем, либо протестировать изменения на тестовом сервере перед внедрением на боевой сайт.
Понимание системы автообновлений WordPress и её рисков
По умолчанию WordPress включает автообновления для минорных версий ядра, а также для плагинов и тем (начиная с версии 5.5). Это помогает закрывать уязвимости и улучшать функциональность без задержек. Однако автоматические обновления могут привести к неожиданным ошибкам, если новые версии несовместимы с уже установленными решениями или кастомным кодом.
Полное отключение автообновлений требует аккуратности, чтобы не скомпрометировать безопасность сайта. Необходимо обеспечить регулярный контроль обновлений вручную и тестировать их на рабочем сайте.
Способы отключения автообновлений в WordPress
Отключение через файл wp-config.php
Самый простой способ — добавить в wp-config.php следующую строчку:
define('WP_CHECK_disable_auto_update_core', false);
define('WP_AUTO_UPDATE_CORE', false);
Константа WP_AUTO_UPDATE_CORE управляет автообновлениями ядра WordPress. Значение false отключает все автообновления ядра, включая минорные и мажорные.
Однако этот способ не отключает обновления плагинов и тем.
Отключение автообновлений плагинов и тем через фильтры
Чтобы отключить автообновления плагинов и тем, можно использовать фильтры в файле functions.php вашей темы или в собственном плагине:
add_filter('auto_update_plugin', '__return_false');
add_filter('auto_update_theme', '__return_false');
Эти фильтры предотвращают автоматическое обновление всех плагинов и тем.
Отключение всех автообновлений без исключений
Если требуется полностью отключить все автообновления, включая ядро, плагины и темы, можно объединить все методы в одном плагине или файле functions.php:
function wpcheck_disable_all_auto_updates() {
// Отключаем автообновления ядра
add_filter('allow_minor_auto_core_updates', '__return_false');
add_filter('allow_major_auto_core_updates', '__return_false');
// Отключаем автообновления плагинов
add_filter('auto_update_plugin', '__return_false');
// Отключаем автообновления тем
add_filter('auto_update_theme', '__return_false');
}
add_action('init', 'wpcheck_disable_all_auto_updates');
Риски отключения автообновлений и как их минимизировать
Отключая автообновления, вы берёте ответственность за своевременное обновление системы. Несвоевременное обновление может привести к появлению уязвимостей и проблем с совместимостью.
Чтобы минимизировать риски:
- Настройте регулярное резервное копирование сайта.
- Используйте плагины мониторинга безопасности, например Clearfy Pro (подробнее на WPShop), которые помогут отслеживать устаревшие компоненты.
- Проводите тестирование обновлений на локальной копии или тестовом стенде.
- Используйте уведомления по электронной почте о выходе обновлений.
Пример кастомного плагина для управления автообновлениями в WordPress
Создадим простой плагин, который отключает автообновления и отправляет уведомление администратору о необходимости обновить сайт вручную:
<?php
/**
* Plugin Name: WPCheck Disable Auto Updates
* Description: Отключает все автообновления и уведомляет администратора.
* Version: 1.0
* Author: WPCheck
*/
if (!defined('ABSPATH')) exit; // Защита от прямого доступа
// Отключаем все автообновления
add_filter('allow_minor_auto_core_updates', '__return_false');
add_filter('allow_major_auto_core_updates', '__return_false');
add_filter('auto_update_plugin', '__return_false');
add_filter('auto_update_theme', '__return_false');
// Уведомление администратора
function wpcheck_notify_admin_update_needed() {
$user = get_user_by('id', 1); // Обычно администратор с ID=1
if ($user) {
wp_mail($user->user_email, 'WPCheck: Обновление WordPress', 'Автоматические обновления отключены. Пожалуйста, обновите WordPress, плагины и темы вручную для безопасности сайта.');
}
}
add_action('admin_init', 'wpcheck_notify_admin_update_needed');
Альтернативные решения для частичного контроля автообновлений
Если полностью отключать автообновления нежелательно, можно настроить их выборочно:
- Отключать только мажорные обновления ядра, оставляя минорные активными.
- Разрешать автообновления только для проверенных плагинов.
- Использовать специальные плагины для управления обновлениями, например Clearfy Pro или Expert Review (подробнее на WPShop).
Например, для разрешения автообновлений только минорных версий ядра:
add_filter('allow_minor_auto_core_updates', '__return_true');
add_filter('allow_major_auto_core_updates', '__return_false');
Это позволяет сохранить безопасность без риска крупных изменений.
Выводы по отключению автообновлений в WordPress
Отключение автообновлений — полезный инструмент для разработчиков и опытных администраторов, которые хотят полный контроль над сайтом. Главное — помнить о регулярных проверках и обновлениях вручную, чтобы не допустить уязвимостей. Для удобства можно использовать уведомления и мониторинг.
Реализуйте отключение автообновлений аккуратно, используя приведённые фильтры и методы, и не забывайте про резервное копирование.