Несмотря на то, что недавно вышла версия WordPress 4.7, я вот пишу про автоматические обновления, которые появились ещё в 3.7 версии.
Нужны они для того, чтобы упростить весь этот процесс + улучшить безопасность. Допустим залатали дыру — и на всех сайтах (где WP 3.7 и выше) всё автоматически обновилось, дыра закрыта. Всё просто.
По умолчанию автообновления включены только для технических релизов (3.7.1, 3.7.2.. ) и для файлов переводов.
Опций в админке для этого не предусмотрено, поэтому, если вы хотите внести какие-то изменения в этот процесс обновления, то вам нужно немного поработать в конфигурационном файле wp-config.php
, либо в functions.php
текущей темы.
Всего в WordPress существует 4 типа обновлений:
Этот тип обновлений подразделяется ещё на три подтипа:
Теперь всю теорию про обновления вы знаете — дальше практика :)
Для этого вставьте в wp-config.php
следующий код. Меня кстати часто спрашивают, куда именно — отвечаю — перед строчкой «Это всё, дальше не редактируем»!
// включить все автоматические обновления ядра define( 'WP_AUTO_UPDATE_CORE', true );
В этом вам поможет код для wp-config.php
:
// включить автоматические обновления технических релизов define( 'WP_AUTO_UPDATE_CORE', 'minor' );
Вообще эта опция включена по умолчанию, но иногда она тоже может пригодиться.
Это так же делается одной строчкой кода:
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
.
Этим кодом, но имейте ввиду, что это нормально, что у вас обновится к примеру какое-то расширение в 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' );
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Привет) Я спрошу немного не по теме - ты не думал написать гайд, как при создании своей платной темы для wordpress сделать возможность ее обновления для пользователя? Я вчера озадачился этим вопросом. В рунете такого не нашел )
Обычно все платные плагины обновляются путём загрузки архива новой версии с сайта разработчика.
Например какие? Просто мне не приходилось сталкиваться с подобным.
Привет, думал) Напишу возможно со временем, там на самом деле много интересных моментов.
Блин. Придется самому писать )) Хотя нагуглил пару вариантов
https://github.com/YahnisElsts/wp-update-server
https://code.tutsplus.com/tutorials/create-a-license-controlled-update-system-doing-the-update--cms-22675