Автоматические фоновые обновления WordPress 3.7
01.09.2018
Несмотря на то, что недавно вышла версия WordPress 4.7, я вот пишу про автоматические обновления, которые появились ещё в 3.7 версии.
Аккумулятор: увеличение времени работы Windows Mobile 8.1
Нужны они для того, чтобы упростить весь этот процесс + улучшить безопасность. Допустим залатали дыру — и на всех сайтах (где WP 3.7 и выше) всё автоматически обновилось, дыра закрыта. Всё просто.
По умолчанию автообновления включены только для технических релизов (3.7.1, 3.7.2.. ) и для файлов переводов.
Опций в админке для этого не предусмотрено, поэтому, если вы хотите внести какие-то изменения в этот процесс обновления, то вам нужно немного поработать в конфигурационном файле wp-config.php, либо в functions.php текущей темы.
Всего в WordPress существует 4 типа обновлений:
Обновления ядра (движка). Обновления тем. Обновления плагинов. Обновления файлов локализации (перевода).Обновления ядра
Этот тип обновлений подразделяется ещё на три подтипа:
Версии для разработчиков (core development updates). Технические релизы, в которых обычно исправляют критические ошибки и уязвимости (minor updates). Основные релизы (например 3.7, 4.7).Теперь всю теорию про обновления вы знаете — дальше практика ????
Как включить автоматические обновления для основных релизов 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' ) ; |