Автоматические обновления в WordPress — важный механизм для поддержания безопасности и стабильности сайта. Однако бывают ситуации, когда необходимо отключить автообновления, например, для избежания конфликтов с кастомными плагинами или темами, или при работе на staging-сервере. В этой статье мы подробно разберём, как правильно отключить разные типы автообновлений в WordPress с примерами кода и рекомендациями.
Что такое автообновления в WordPress и зачем их отключать
По умолчанию WordPress автоматически обновляет минорные релизы, а также некоторые плагины и темы. Это помогает оперативно исправлять уязвимости и баги. Но бывают ситуации, когда автоматические обновления могут привести к конфликтам и сбоям:
- на сайте установлены кастомные модификации плагинов или тем;
- некоторые плагины несовместимы с новыми версиями;
- нужно протестировать обновления на staging-сервере;
- обновления могут сломать важный функционал без возможности быстрого отката.
В таких случаях разумно отключить автообновления и контролировать процесс вручную.
Как отключить автообновления с помощью констант в wp-config.php
Самый простой способ — добавить несколько строк в файл wp-config.php, который находится в корне сайта. Например, чтобы полностью отключить все автообновления, добавьте:
define('WP_AUTO_UPDATE_CORE', false);Эта константа отключает автообновления ядра WordPress. Но по умолчанию плагины и темы могут обновляться сами, поэтому нужно дополнительно:
add_filter('auto_update_plugin', '__return_false');
add_filter('auto_update_theme', '__return_false');Эти фильтры отключают автоматические обновления для всех плагинов и тем. Их лучше добавить в файл functions.php используемой темы или в отдельный плагин.
Пример: отключение автообновлений в wp-config.php и functions.php
В wp-config.php добавьте:
define('WP_AUTO_UPDATE_CORE', false);В functions.php темы или в плагине:
add_filter('auto_update_plugin', '__return_false');
add_filter('auto_update_theme', '__return_false');Отключение автообновлений для конкретных плагинов и тем
Иногда нужно оставить автообновления включёнными для большинства плагинов, но отключить для отдельных, например, важных кастомных решений. Для этого используйте фильтр auto_update_plugin и проверяйте имя плагина:
add_filter('auto_update_plugin', 'wplock_disable_plugin_update', 10, 2);
function wplock_disable_plugin_update($update, $item) {
$plugins_to_disable = ['my-custom-plugin/my-custom-plugin.php', 'another-plugin/another-plugin.php'];
if (in_array($item->plugin, $plugins_to_disable)) {
return false;
}
return $update;
}Аналогично можно сделать для тем:
add_filter('auto_update_theme', 'wplock_disable_theme_update', 10, 2);
function wplock_disable_theme_update($update, $item) {
$themes_to_disable = ['my-custom-theme', 'another-theme'];
if (in_array($item->theme, $themes_to_disable)) {
return false;
}
return $update;
}В этих примерах мы возвращаем false для выбранных плагинов или тем, тем самым блокируя их автообновления.
Отключение автообновлений с помощью плагинов
Если не хотите копаться в коде, можно использовать готовые плагины, которые дают гибкий контроль над автообновлениями. Например:
- Disable WordPress Core Update — отключает автообновления ядра;
- Auto Update Manager — позволяет настраивать автообновления для каждого плагина и темы;
- Clearfy Pro — комплексный плагин оптимизации и безопасности, в том числе контролирует автообновления.
Преимущество плагинов — простой интерфейс и безопасность настроек, недостаток — дополнительная нагрузка на сайт.
Практические советы и рекомендации
При отключении автообновлений важно помнить:
- Обязательно регулярно проверяйте наличие обновлений и применяйте их вручную — это важно для безопасности;
- Перед обновлением создавайте резервные копии сайта и базы данных, чтобы иметь возможность откатиться;
- Для сайтов с высокими требованиями к стабильности лучше использовать staging-сервер для тестирования обновлений;
- Если используете кастомные плагины или темы, фиксируйте версии, чтобы не потерять совместимость.
Пример функции для включения уведомлений о доступных обновлениях при отключённых автообновлениях
Если вы отключаете автообновления, но хотите получать уведомления в админке, добавьте эту функцию:
add_action('admin_notices', 'wplock_update_notifications');
function wplock_update_notifications() {
$update_core = get_site_transient('update_core');
if (!empty($update_core->updates)) {
echo '<div class="notice notice-warning">';
echo '<p>Доступно обновление WordPress. Пожалуйста, обновите вручную.</p>';
echo '</div>';
}
$update_plugins = get_site_transient('update_plugins');
if (!empty($update_plugins->response)) {
echo '<div class="notice notice-warning">';
echo '<p>Доступны обновления плагинов. Проверьте и обновите.</p>';
echo '</div>';
}
}Заключение
Отключение автообновлений в WordPress — важная задача для продвинутых пользователей и разработчиков, которые хотят контролировать процесс обновления и избежать неожиданных сбоев. В статье мы рассмотрели, как отключить автообновления ядра, плагинов и тем, как управлять ими выборочно и с помощью плагинов. Используйте приведённые примеры и рекомендации, чтобы настроить автообновления под свои задачи и поддерживать сайт в безопасности и стабильности.