ГлавнаяРазноеКак отключить автоматическое обновление WordPress

Как отключить автоматическое обновление WordPress

Начиная с версии 3.7 ядро WordPress обновляется автоматически, без участия пользователей. Есть ряд ситуаций, по которой подобные обновления не желательны, и в этой статье мы рассмотрим несколько способов отключить автоматическое обновление WordPress.

Автоматические обновления WordPress

Автоматические обновления WordPress

В первую очередь стоит отметить, что автоматические обновления (по умолчанию) касаются лишь технических релизов — это те, которые устраняют некоторые критические ошибки и уязвимости WordPress. Пропускать подобные обновления не безопасно и крайне не рекомендуется, а система отката сможет восстановить вашу прежнюю версию, в случае каких-либо сбоев при попытке обновления.

Есть три основных причины, по которым вам следует отключить автоматическое обновление WordPress:

  • Вы используете систему контроля версий, в том числе и для обновлений
  • Вы пользуетесь какими-либо средствами для развёртывания проектов на удалённых серверах, например Capistrano или SaltStack
  • Вы являетесь хостинг-провайдером и выполняете обновления самостоятельно и вовремя для всех ваших клиентов

Управление автоматическим обновлением

Существует несколько констант, для управления автоматическими обновлениями в WordPress, их вы можете устанавливать в файле конфигурации wp-config.php. Например, чтобы полностью отключить механизм автоматических обновлений, используйте константу AUTOMATIC_UPDATER_DISABLED:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

Учтите, что с помощью этой директивы, вы так же отключите автоматические обновления языковых пакетов, тем и плагинов, если они включены. С помощью константы WP_AUTO_UPDATE_CORE, вы можете управлять автоматическим обновлением ядра WordPress.

Значение по умолчанию — minor, разрешит автоматическое обновление только на технические релизы, например с 3.7 на 3.7.1 и на 3.7.2, но не на 3.8, 3.9 и т.д. Значением false вы можете полностью отключить автоматическое обновление ядра, а значением true вы можете включить автоматическое обновление для всех релизов (а не только технических):

// Только технические релизы, 3.7 до 3.7.1, 3.7.2 и т.д. (значение по умолчанию)
define( 'WP_AUTO_UPDATE_CORE', 'minor' );

// Все релизы, 3.7 до 3.8, 3.9 и т.д.
define( 'WP_AUTO_UPDATE_CORE', true );

// Отключить автоматическое обновление ядра
define( 'WP_AUTO_UPDATE_CORE', false );

Вы так же можете воспользоваться специальными фильтрами для управления автоматическими обновлениями ядра:

  • allow_major_auto_core_updates — обновление основных релизов (с 3.7 на 3.8)
  • allow_minor_auto_core_updates — обновление на технические релизы (с 3.7 на 3.7.1 и 3.7.2)
  • allow_dev_auto_core_updates — обновление на версии для разработчиков (с 3.7-RC до 3.7-RC2)
  • auto_update_core — разрешить автоматическое обновление ядра

Вы можете написать простой плагин, чтобы использовать эти фильтры на вашем сайте. Например, чтобы разрешить обновление основных релизов:

/**
 * Plugin Name: Enable Major Core Updates
 */
add_filter( 'allow_major_auto_core_updates', '__return_true' );

А чтобы запретить автоматическое обновление ядра WordPress:

add_filter( 'auto_update_core', '__return_false' );

Учтите, что многие сайты рекомендуют использовать подобные фильтры в файле functions.php вашей активной темы. Мы советуем вам этого не делать, поскольку это не даёт никаких преимуществ, а этот файл перестанет исполняться, если вдруг вы решите изменить тему вашего сайта. Подробнее в статье про functions.php.

Автоматическое обновление тем и плагинов WordPress

По умолчанию WordPress не будет автоматически обновлять ваши темы и плагины, но это можно легко изменить с помощью фильтров auto_update_theme и auto_update_plugin:

/**
 * Plugin Name: Auto-update Plugins and Themes
 */
add_filter( 'auto_update_theme', '__return_true' );
add_filter( 'auto_update_plugin', '__return_true' );

Таким же образом, если автоматическое обновление тем и плагинов включено, вы можете легко его отключить используя вспомогательную функцию __return_false.

Системы контроля версий

Перед тем как выполнить автоматическое обновление, WordPress выполнит поиск директорий .svn, .git, .hg и .bz — это вспомогательные директории систем контроля версий Subversion, Git, Mercurial, и Bazaar. В случае обнаружения одной из них, автоматическое обновление выполняться не будет.

Если вы используете систему контроля версий и всё равно хотите, чтобы ядро WordPress обновлялось автоматически, вы можете воспользоваться фильтром automatic_updates_is_vcs_checkout.


В заключении хотелось бы вновь отметить, что отключать автоматическое обновление ядра WordPress не рекомендуется, особенно когда речь идёт о технических релизах, которые часто содержат устранение уязвимостей. Если по какой-либо причине автоматическое обновление на вашем сайте невозможно, вы можете воспользоваться специальным плагином Background Update Tester, который поможет вам найти и устранить причину.

Подробнее о том, почему стоит всегда обновлять WordPress, плагины и темы, читайте в нашей статье.

Константин Ковшенин

Сооснователь журнала WP Magazine и первой конференции WordCamp в России. Работал в Automattic, WordPress.com, WooCommerce. Принимает активное участие в развитии ядра WordPress. Любимый язык программирования: Python.

Подписаться на рассылку

Подписаться → Подпишитесь на бесплатную рассылку журнала WP Magazine и получайте новости, события, подборки тем и плагинов, уроки, советы и многое другое в мире WordPress!