Несмотря на то, что недавно вышла версия WordPress 4.7, я вот пишу про автоматические обновления, которые появились ещё в 3.7 версии.
Нужны они для того, чтобы упростить весь этот процесс + улучшить безопасность. Допустим залатали дыру — и на всех сайтах (где WP 3.7 и выше) всё автоматически обновилось, дыра закрыта. Всё просто.
По умолчанию автообновления включены только для технических релизов (3.7.1, 3.7.2.. ) и для файлов переводов.
Опций в админке для этого не предусмотрено, поэтому, если вы хотите внести какие-то изменения в этот процесс обновления, то вам нужно немного поработать в конфигурационном файле wp-config.php
, либо в functions.php
текущей темы.
Всего в WordPress существует 4 типа обновлений:
Обновления ядра
Этот тип обновлений подразделяется ещё на три подтипа:
Теперь всю теорию про обновления вы знаете — дальше практика 🙂
Как включить автоматические обновления для основных релизов WordPress, технических релизов и версий для разработчиков?
Для этого вставьте в wp-config.php
следующий код. Меня кстати часто спрашивают, куда именно — отвечаю — перед строчкой «Это всё, дальше не редактируем»!
// включить все автоматические обновления ядра define( 'WP_AUTO_UPDATE_CORE', true );
Как включить автоматические обновления только для технических релизов?
В этом вам поможет код для wp-config.php
:
// включить автоматические обновления технических релизов define( 'WP_AUTO_UPDATE_CORE', 'minor' );
Вообще эта опция включена по умолчанию, но иногда она тоже может пригодиться.
Запретить все автоматические обновления ядра WP
Это так же делается одной строчкой кода:
define( 'WP_AUTO_UPDATE_CORE', false );
Включаем автоматические фоновые обновления версий для разработчиков
Это делается кодом, вставляемым в functions.php
.
add_filter( 'allow_dev_auto_core_updates', '__return_true' );
Чтобы отключить эти самые обновления, просто заменяем __return_true
на __return_false
, но возможно вам не придётся этого делать, так как по умолчанию они и так отключены.
Как отключить автообновления для технических релизов
Код так же для functions.php
:
add_filter( 'allow_minor_auto_core_updates', '__return_false' );
Включить автообновления для основных релизов
В functions.php
:
add_filter( 'allow_major_auto_core_updates', '__return_true' );
Как вы поняли, фильтры в functions.php
дадут вам чуть больше возможностей настройки того, какие обновления включить, а какие выключить.
Принудительные автообновления
WordPress умеет определять, используется ли у вас система контроля версий (.git, .hg, .svn), в таком случае он не выполняет автоматические обновления. Но можно отключить это хуком в functions.php
.
function true_force_auto_update( $checkout, $context ) { return false; } add_filter( 'automatic_updates_is_vcs_checkout', 'true_force_auto_update', 10, 2 );
Плагины и темы
Автообновления плагинов и тем отключены по умолчанию, но мы можем их включить. Делается всё через functions.php
.
Как включить автоматические обновления плагинов в WordPress?
Этим кодом, но имейте ввиду, что это нормально, что у вас обновится к примеру какое-то расширение в WooCommerce и перестанет работать оплата на сайте. Конечно, скорее всего это исправят.. Через пару дней 🙂
// включить автоматические обновления плагинов add_filter( 'auto_update_plugin', '__return_true' );
Как включить автоматические обновления тем?
При включении этой опции тоже можно ожидать всяких сюрпризов, но зависит конечно от темы, которую вы используете и от её разработчиков.
add_filter( 'auto_update_theme', '__return_true' );
А, да, ещё есть обновления локализаций
Которые включены по умолчанию и могут быть отключены этой строчкой кода:
// отключить обновления файлов перевода add_filter( 'auto_update_translation', '__return_false' );
P.S. По умолчанию WordPress производит проверку обновлений каждые 12 часов. Конечно, если у вас всё в порядке с WP_Cron.
И ещё кое-что. После обновлений WordPress автоматически отправляет email-уведомление, которое можно отключить этим кодом:
// отключить емайл-уведомления об установке новых версий add_filter( 'auto_core_update_send_email', '__return_false' );