Как настроить автоматическое обновление WordPress?
Релиз WordPress 3.7, вышедший в октябре 2013 года, открыл нам доступ к функциям, которые пришлись по вкусу одним и оказались совершенно ненужными для других. На повестке дня автоматическое обновление минорных релизов ядра WordPress. При появлении нового минорного релиза (версия 3.9.1, например), WordPress теперь может автоматически обновлять ядро системы – великолепная новость для большинства пользователей WordPress, но, как оказалось, не для всех.
Зачем отключать автоматические обновления?
Если вы используете выделенный сервер, то, вероятно, ваш хостер делает апдейты за вас. Прежде чем внедрять обновление, им нужно убедиться, что в их среде новая версия работает стабильно (шансы, что что-то будет работать не так, крайне малы, но все-таки лучше протестировать заранее – до того, как вы начнете использовать эти обновления, особенно, если речь идет о крупных сайтах, для которых обычно используются выделенные серверы).
Если вы используете не выделенный сервер, а что-то другое, то, наверняка, вы сами несете ответственность за обновление вашего софта, и таким образом, имеете больше контроля над тем, как проходят автоматические обновления.
Если вы используете много плагинов или кастомную тему, то вы можете захотеть отказаться от обновления версии WP, пока разработчики плагинов не убедятся в том, что их расширения работают стабильно в купе с новым релизом.
Возможно, вы попали в одной из тех ситуациях, в которых у вас появляется веская причина, чтоб отключить функцию автообновления на вашем сайте. Так, как же можно это сделать? Существует два способа проделать этот трюк:
- С помощью плагина
- Добавить кусочек кода
Так как использование плагина представляется нам самым простым способом добиться поставленной цели, то давайте начнем с этого.
Замечание: если используете систему управления версиями, например, Git, Subversion, Mercurial или Bazaar, то эта функция будет отключена в WordPress автоматически, так что вам не о чем волноваться.
А вот и плагин для этого
В репозитории WordPress вы найдете плагин, который называется Advanced Automatic Updates. После установки, зайдите на страницу с настройками плагина, где вы можете отключить нежелательные автоматические обновления, включая мажорные релизы ядра, плагинов и тем, а также дефолтные минорные релизы, для которых и была разработана функция.
И в качестве дополнительного бонуса, вы можете также отключить автоуведомления, которые WordPress автоматически посылает админу сайта или переписать админский email-адрес, заменив его собственным, если вы предпочитаете не видеть их и не мозолить ими глаза вашего клиента.
Замечание: Функция обновления темы будет работать только в том случае, если она скачана с официального репозитория WordPress.
Если вы используете платную или премиальную тему, которая была скачана с другого ресурса, типа магазина тем или дизайнерского сайта, то вам придется самостоятельно обновлять шаблон при появлении новой версии.
Помните, что всегда нужно делать бэкап, перед тем, как что-то обновлять. При том, это правило действует также и, когда вы проводите манипуляции с кодом, описанные ниже.
Отключение функции автообновления
А что делать, если вам не хочется устанавливать лишний плагин на ваш сайт? Так как пользовательский интерфейс WordPress не имеет никакого рычажка, чтоб отключить сей функционал, то вам придется засучить рукава и покопаться в коде. Поверьте мне, это не так уж и сложно. Все, что вам нужно сделать, это добавить этот кусок кода в ваш файл wp-config.php:
/* Disable WordPress automatic updates */ define( 'WP_AUTO_UPDATE_CORE', false );
Я предлагаю расположить этот код, и другие кусочки кода, которые мы будем дальше рассматривать, сюда, прямо над вот этой надписью в wp-config.php:
/* That's all, stop editing! Happy blogging. */
(Здесь есть предложение – одно простое и быстрое правило: мне нравится держать все мои нестандартные версии файла wp-config здесь, чтоб я мог их легко найти. Но это ваше дело, где их держать.)
Включение обновлений для мажорных релизов
Если вы хотите включить обновления ядра и для мажорных, и для минорных релизов, то добавьте эту строчку кода в файл wp-config.php:
/* turn on both minor and major WordPress automatic core updates*/ define('WP_AUTO_UPDATE_CORE', true);
Обновления плагинов и тем
Если вы хотите, чтоб ваши темы и плагины, скачанные из репозитория WordPress, обновлялись автоматически, то код для этого весьма похож на тот, который мы только что использовали, но на этот раз для того, чтоб включить обновления нужен еще и фильтр (Читайте замечание выше, в котором говорится о связи автоматических обновлений и репозитория).
Для автоматического обновления плагинов, используйте этот код:
add_filter( 'auto_update_plugin', '__return_true' );
И чтоб сделать тоже самое для тем, примените вот этот код
add_filter( 'auto_update_theme', '__return_true' );
Отключение всех обновлений
Допустим, вы решили, что вашему сайту вообще не нужны автоматические обновления. Вы гуру вашего домена (и веб-сайта, и возможно, email…но это к делу не относится) и решили заниматься обновлениями исключительно самостоятельно. Вот, как можно это сделать:
/* I am the captain of this ship, I’ll do my own updates thanks*/ define (‘ AUTOMATIC_UPDATER_DISABLED’, true );
Не забудьте, друзья, что этот кусок кода отключает всю и переписывает некоторые опции, которые вы, возможно, включили, так что используйте эту силу благоразумно.
Теперь, имея в своем распоряжении все эти кусочки кода, мы можем их миксовать друг с другом. Например, можно отключить обновления ядра, но позволить темам и плагинам наслаждаться всеми благами автообновления. Так, начнем с отключения обновлений ядра, добавив этот код:
/* Disable WordPress automatic updates */ define( 'WP_AUTO_UPDATE_CORE', false );
Затем добавим код включения обновлений тем и плагинов:
add_filter( 'auto_update_plugin', '__return_true' ); add_filter( 'auto_update_theme', '__return_true' );
Email-уведомления
И еще один трюк напоследок – мы собираемся отключить Email-уведомления, которые вы получаете по завершении обновления. На этот раз, вместо того, чтоб добавить код в wp-config.php, мы вставим его в файл functions.php вашей активной темы.
/** * Disable the auto genereated email sent to the admin after a core update */ apply_filters( 'auto_core_update_send_email', false, $type, $core_update, $result );
И, вот, мы добились полного контроля над тем, как в автоматическом режиме обновляется ядро, плагины и темы WordPress-сайта. И еще вы можете отключить email-уведомления.
Спасибо за плагин. Информация тоже полезна для меня
Мне нужно, чтобы обновления не поднимались выше 3.8.10. Это надо запрещать минорные обновления? Попробую для начала плагином.
Да…, у вас самое внятное объяснение и самое грамотное, в части грамматики русского языка, среди остальных авторов темы обновления. Так держать!