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

32

В WordPress 3.7 добавлены автоматические обновления. Как это работает, и как я могу настроить эту функцию?

Чип Беннетт
источник

Ответы:

29

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

Основное поведение WordPress 3.7 по умолчанию - автоматическое обновление ядра для второстепенных версий (т.е. X.Y.Zдо X.Y.Z+1.)

Никакие параметры конфигурации не представлены в пользовательском интерфейсе. Чтобы изменить поведение, вам нужно изменить свой wp-config.phpфайл или добавить несколько фильтров:

Простое отключение

Добавьте следующее к wp_config.php:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

Или добавьте следующий фильтр:

add_filter( 'automatic_updater_disabled', '__return_true' );

Core Update Control

Через wp-config.php:

// Update core - development, major, and minor versions
define( 'WP_AUTO_UPDATE_CORE', true );

// Update core - minor versions
define( 'WP_AUTO_UPDATE_CORE', 'minor' );

// Core update disabled
define( 'WP_AUTO_UPDATE_CORE', false );

Через фильтры:

// Enable nightlies (dev updates):
add_filter( 'allow_dev_auto_core_updates', '__return_true' );

// Enable major version updates:
add_filter( 'allow_major_auto_core_updates', '__return_true' );

// Disable minor updates
add_filter( 'allow_minor_auto_core_updates', '__return_false' );

Темы и плагины

Темы и плагины автоматического обновления "все или ничего":

Обновления тем и плагинов по умолчанию отключены . Чтобы включить через фильтр:

add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );

Эти фильтры передаются в объект обновления; таким образом, можно манипулировать этим объектом для определения конкретных тем или плагинов, которые необходимо обновить, либо для внесения в белый список (включения), либо для исключения из автоматических обновлений.

Файлы перевода

Обновления файла перевода включены по умолчанию. Чтобы отключить через фильтр:

// Disable translation updates
add_filter( 'auto_update_translation', '__return_false' );

Обновить результаты письма

Программа обновления отправляет электронное письмо с результатами в случае успеха, сбоя или критической ошибки. Чтобы отключить через фильтр:

// Disable update emails
add_filter( 'auto_core_update_send_email', '__return_false' );

Этот фильтр также можно использовать для управления сообщениями об обновлениях в соответствии с адресом электронной почты $type(успех, сбой, критический), типом объекта обновления $core_updateили $result:

/* @param bool   $send        Whether to send the email. Default true.
 * @param string $type        The type of email to send.
 *                            Can be one of 'success', 'fail', 'critical'.
 * @param object $core_update The update offer that was attempted.
 * @param mixed  $result      The result for the core update. Can be WP_Error.
 */
apply_filters( 'auto_core_update_send_email', true, $type, $core_update, $result );

Дальнейшее чтение

Кодекс запись здесь . Больше информации здесь .

Чип Беннетт
источник
5
Я думаю, что вы можете сделать это для отдельного обновления темы / плагина в соответствии с комментариями Nacin "Предыдущие параметры конфигурации - все или ничего. Однако вы можете захотеть что-то более детальное. Оно auto_update_$type filter (auto_update_core, auto_update_plugin, auto_update_theme, auto_update_translation)запускается для конкретных обновлений, так как они готов к обновлению. Этот фильтр передается фактическому объекту обновления, описывающему, что WordPress собирается обновить. Это означает, что вы можете выборочно включать отдельные плагины или темы, например, для обновления, или вносить изменения в белый список предстоящих обновлений ядра ».
pollyplummer
1
@pollyplummer, пожалуйста, добавьте эту информацию в ответ! Это хорошо. :)
Чип Беннетт
1
@brasofilo " В разделе" Простое обновление "не должно быть" Или добавить следующий фильтр "? " - не в соответствии с Кодексом. Он рекомендует использовать оба.
Чип Беннетт
1
Если я правильно следую логике ядра, она проходит сначала по фильтру, а затем по константе. Если это так, мы должны обновить запись Кодекса с помощью «или». Я также вижу, что DISALLOW_FILE_MODSостанавливает любое обновление.
brasofilo
1
@Howdy_McGee Я только что опубликовал руководство о том, как исключить некоторые плагины . Кроме того, страница обновления в Wordpress сообщает вам, включены ли автоматические обновления. Если в нем не упоминаются автообновления, используйте этот плагин, чтобы узнать, почему они отключены.
Дэвид
2

Вы можете проверить, поддерживают ли ваш сайт и конфигурация сервера автоматические обновления с помощью плагина Background Update Tester . От Nacin: «Этот плагин проверяет ваш сайт на совместимость и объясняет любые проблемы».

Мириам Шваб
источник
Не обновляется с 2015 года, времена WordPress ~ 4.1.
Кубанчик