Отключить автоматическое обновление вордпресс. Авто-обновления в WordPress

Постоянное обновление ядра WordPress, а также плагинов и тем оформления – это важная часть работы по улучшению безопасности сайта и скорости его работы. Но увы, не всегда автообновление, является хорошей идеей. Давайте посмотрим, все за и против.

Для чего нужны обновления

Вначале рассмотрим, для чего вообще нужны обновления.

Существуют две основные причины для обновлений.

1.Ввод дополнительных функций. Разработчики, в том числе wordpress, постоянно улучшают эту систему управления, постоянно вводят новые функции.

Сюда же отнесу – удаление лишних функций. Да, такое тоже бывает, хотя и намного реже.

2.Устранение багов, уязвимостей. Зачастую, именно это становится основной причиной для обновления. Программисты постоянно ищут баги, уязвимости, благодаря которым, хакеры смогут сделать плохие дела.

Как правило, обновления устанавливаются вручную. Но бывает и такое, что WordPress устанавливает обновление автоматически. WordPress имеет возможность автоматического обновления обновлений, и тем самым, он может сам обновить ваш сайт.

— Но ведь это хорошо! – можете вы подумать, – ведь тогда, сайт будет в безопасности, все важные обновления сами установятся!

На самом деле, нет.

Почему автоматические обновления WordPress не являются хорошей идеей для вашего сайта?

Начиная с версии 3.7 , wordpress имеет возможность автоматического обновления в случае крупных изменений или по причине исправления по безопасности.

Действительно, есть два главных преимущества у автоматического обновления:

Оно гарантирует, что ваш сайт всегда будет иметь самую последнюю и самую лучшую версию всего программного обеспечения, а значит, сайт будет работать максимально хорошо и безопасно.

И второе преимущество, уменьшение работы для вебмастера. Система все что нужно, делает сама, и вмешательство человека не нужно.

Однако, есть и недостатки. Есть вероятность того, что ваш сайт, даст сбой в результате авто обновления. Представьте себе, что это может означать для крупного сайта, который решил автообновится в полночь. В результате, всю ночь сайт не будет работать, что приведет к большим, в том числе, финансовым убытка. А вебмастер даже знать не будет, что с сайт не работает. И узнает про это, только утром.

Но мало того, зачастую, автоматическое обновление происходит вообще без оповещения. И вот, вебмастер садится за свой комп, проверяет статистику, а в ответ тишина. Сайт повис. В такой ситуации, можно быть уверенным, что причина сбоя сайта – обновление wordpress, будет последней, что придет в голову вебмастеру. Скорее всего, он будет думать, что причина сбоя сайта – хакерский взлом.

Вот и приходится выбирать, или вы обновите wordpress чуть позже, но спокойно, или однажды утром, вы проснетесь, и увидите, что ваш сайт не работает.

Отключите обновление WordPress и вы будете уверены, сайт постоянно работает без нареканий.

Или же

Включите автоматические обновления и надейтесь, что конфликты между ядром, плагинами и / или темами сломают сайт во время автоматического обновления.

Если вы все еще не уверены, что отключить автообновления WordPress — это лучший выбор, позвольте мне рассказать вам о чем-то, что произошло в 2016 году, и что, скорее всего, напугает вас навсегда:

Автообновление Wordfence

WordPress использует api.wordpress.org для обработки выпуска автоматических обновлений для пользователей. Вот как работает этот процесс:

Хотя такая процедура, делает процесс автоматического обновления сайтов намного проще для WordPress, это не полностью отказоустойчивая система. Подумайте об этом:

Когда на сайте установлены автоматические обновления, это означает, что он распознает api.wordpress.org как надежный источник и принимает все обновления от него. Но что произойдет, если вредоносный код, попадет в ядро?

Вот как будет выглядеть этот сценарий:

Поскольку WordPress является системой с открытым исходным кодом, и поскольку API автоматического обновления имеет общедоступный веб-хост GitHub, то команда разработчиков должна быть очень осторожна в том, что входит в код на сервере. Вот почему материалы GitHub проходят тщательную проверку перед тем, как попасть на сервер.

Несмотря на то, что здесь сильная безопасность, Wordfence обнаружил серьезную уязвимость в отношении одного из слабых алгоритмов хэширования webhook .

По сути, плохо сконструированный механизм хэширования значительно упростил возможность для злоумышленника взломать код и попасть внутрь api.wordpress.org . Если бы хакер смог это сделать, любая зараженная на сервере информация была бы распространена на каждый сайт с включенным автоматическим обновлением. Причем очень быстро.

И хотя разработчики WordPress быстро исправили эту проблему, но по факту, нет никаких сто процентных гарантий того, что в коде еще не осталось других дыр безопасности. Тем более, с учетом того, что ядро WordPress тоже постоянно модифицируется.

Почему надо запретить обновляться WordPress

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

Выключение автоматического обновления WordPress — это необходимое решение.

Как только вы отключите автоматические обновления WordPress, вы можете полностью контролировать процесс. Это означает тестирование каждого нового ядра, плагина или обновления темы в безопасной тестовой среде вдали от вашего сайта WordPress.

Если что-то случится, тогда нечего делать. Ваш испытательный сайт — взял на себя основную тяжесть сбоя, и вы будете знать, что обновлять работающий сайт, не стоит.

Если обновление прошло гладко, не выскочило никаких косяков, то вам потребуется всего несколько кликов, для того, чтобы обновить свой работающий сайт.

Отключить авто обновление, можно двумя путями: с некоторыми изменениями кода WordPress и с использованием плагина. Но так как, я испытываю некоторые проблемы при использовании кода, то мне проще использовать плагин. И для отключения авто обновления, хорошо подойдет плагин Easy Updates Manager, который вы можете скачать с официального репозитория wordpress

Надеюсь, у вас нет проблем с установкой плагинов на wordpress. Установка этого плагина, также стандартна. В конце установки, он у вас должен появится среди ваших установленных плагинов.

Зайдя в настройки плагина, вы увидите примерно следующее.

У плагина есть несколько вкладок: основные, плагины, темы, дополнительно.

На основной вкладке, вы можете регулировать сразу все. Включить или отключить обновление всего. Тут я вам рекомендую, включить обновления. В конце концов, обновления, важная процедура, и отказываясь совсем, вы рискуете тем, что ваш сайт станет легкой мишенью для хакеров.

Вторым пунктом, вы можете отключить автообновления.

Помимо этого, с помощью этого плагина, вы можете изменить и другие настройки обновления. Включить/выключить обновления всех тем, включить/выключить обновления плагинов. Можно также включить/выключить отдельные плагины, темы.

В общем, возможностей у этого плагина хватает.

Заключение

Как вы видите, есть очень веские причины, чтобы отключить автоматические обновления WordPress. И поскольку, это действительно легко сделать, то почему бы этого не сделать? Да, это дополнительная работа, да, нужно будет регулярно заходить в админку. А еще, весьма желательно, тестировать обновления на сайтах близнецах. А еще, возможно у вас несколько сайтов.

Но все равно, это проще сделать, чем нервничать, если вдруг сайт зависнет, и вы не сможете понять причину, и уж тем более, не будете знать, что делать.

Сегодня я обнаружил, что мой WordPress требует каких то обновлений. Я открыл админку, и увидел, что обновления требует моя тема вордпресс.


Если это произошло бы года три назад, то я не задумываясь нажал бы кнопку ОБНОВИТЬ. И потом бы очень жалел 🙁 Знаете почему? Потому что тут же маленькими буквами написано:

ВСЕ ИЗМЕНЕНИЯ В ФАЙЛАХ БУДУТ УТЕРЯНЫ!

А это значит, что если вы неделю допиливали свою тему, редактировали стили, вычищали ссылки, ставили счетчики, добавляли , то одним нажатием кнопки вы все это теряете навсегда…

Если у вас есть резервная копия, то можно все восстановить, но сколько это займет времени? И если она?

Чтобы всего этого случайно не произошло, даже просто по случайности, лучше заблокировать саму эту возможность обновления темы.

Как отключить обновление темы wordpress?

Проблему можно решить установкой одного маленького плагина — Disable Theme Updates.

После этого эти обновления темы больше не будут вас беспокоить. Конечно, решить это как то без плагина было бы лучше, но я не знаю как. Может знаете вы? Но только так, чтобы после обновления самого вордпресс все оставалось на месте.

Кстати, заметку побудил написать меня реальный случай, когда одна девушка вебмастер (неопытная) обновила тему у своего блога и потом удивлялась — куда все пропало? Так что кому то это напоминание будет полезно 🙂


Не нашли ответ? Воспользуйтесь поиском по сайту

Разработчики клиентских сайтов на WordPress , часто сталкиваются с необходимостью восстанавливать сайт, после очередного обновления какого-нибудь плагина. Клиенты конечно же в шоке, особенно, если их бизнес сильно зависит от работоспособности сайта.

Это может прозвучать странно, но разработчик должен позаботиться от защиты админки сайта от самого заказчика. Как правило, плагины не обновляются автоматически, владелец сайта сам нажал на ссылку обновления плагина и неумышленно создал эту проблему.

Как отключить уведомления на обновления в админке?

Вот так выглядят уведомления в админке:

Необходимо убрать уведомления на обновление тем, плагинов и самого WordPress . Для этого переходите во вкладку Внешний вид -> Редактор и откройте файл function.php активной темы и в самый низ вставьте следующий код:

После этого, мы видим, что все уведомления на обновления , на сайте пропали. Казалось бы, вот теперь все могут спать спокойно, но не все так просто. Ведь хакеры, то не спят, ведь совершенно не обновляемый сайт на популярном движке WordPress , легкая добыча для взлома.

Я показал вам такую возможность, как отключение обновлений , лишь с технической стороны, не учитывая возросший риск быть взломанным. Ведь клиент, сайт которого взломали, все равно будет вам звонить. Да как же быть то!? И так плохо, и сяк плохо.

Поиск компромисса

Если по какой-то причине, надо временно отключить обновления во избежание сюрпризов, например вы в отпуске и не можете быстро отреагировать на проблему. Отключите только обновление плагинов, именно плагины чаще всего являются источником проблем для сайта, после их обновления. В то же самое время, злоумышленники чаще всего, взламывают сайты, используют ошибки и уязвимости в старых версиях плагинов. Но все равно, вероятность взлома меньше, чем "испорченный" сайт из-за обновленного плагина.

Уменьшаем риски

Нельзя забывать о безопасности, как своих личных, так и клиентских сайтов. Помните, что каждый новый установленный плагин, будет источником риска. Поэтому не устанавливайте плагины, которые давно не обновлялись и явно "заброшенные" разработчиком. Используйте только платные темы, бесплатные из репозитория WordPress или разработанные специально для вас.

Как ещё обезопасить свой сайт на WordPress , вы можете прочитать . Решить вопрос с безопасностью своего сайта, гораздо проще, чем с клиентским, поскольку он находится под вашим контролем. Ведь большинство клиентов, не знают что-такое вообще WordPress .

Договор с клиентом

Не стоит вдаваться в подробности, что сайты на WordPress уязвимы, а обязательно внести в договор пункт про тестовый период.

Вы должны объяснить заказчику, что вас наняли только на разработку сайта и назовите свой срок гарантийного и тестового периода, после которого уже не принимаются никакие претензии и заявки на "ремонт" сайта. Главная мысль, что исправлять и восстанавливать сайт по истечении срока, бесплатно вы не будете. Договор должен быть с подписью заказчика. Вообщем то ничего нового, все производители дают гарантийный срок на свой продукт, иначе процесс ремонта был бы бесконечным.

Заключение

Вы теперь знаете, как отключить все обновления на WordPress , но я настоятельно не рекомендую этого делать, за исключением отключения уведомлений на обновление платной темы.

Бывает так, что сталкиваешься с необходимостью уберечь функционал плагина от обновления. Такое, например, может случиться, когда доработаешь чей-то старый и редко обновляемый плагин, и не хочется потерять разом внесённые изменения, если вдруг автор сподобится выкатить апдейт. Вот, например, есть подобный пример. Как раз его я и возьму для описания далее.
А ещё бывает, что обновление несёт серьёзные изменения (такое периодически происходит с WooCommerce), и пока сайт не готов к ним, обновления нужно временно запретить.
Конечно, до запрета обновлять плагины лучше не доводить, ведь обновления выходят зачастую не просто так и, возможно, закрывают свежеобнаруженные дыры в безопасности. И, уж если вы решились на подобный шаг, то должны знать о возможных последствиях подобных решений.

Способ запретить обновление плагина №1: изменить номер версии

Самый простой, быстрый и действенный способ. Он не требует особых знаний, вы можете сделать это даже через штатный редактор в /wp-admin/
Можно добавлять строго определённые цифры, например, я добавляю несколько 9999 и разделяю точкой от текущей версии. Тем самым, при необходимости, можно безболезненно вернуть всё назад.

Теперь апдейтер Вордпресса не будет трогать ваш плагин даже при принудительном обновлении всех плагинов подряд, и при этом не будет возникать никаких ошибок.

Способ запретить обновление плагина №2: пишем код

Вариант немного сложнее для тех, кто умеет и любит писать код. Правда, мне лично он не нравится, потому что при обновлении любых плагинов выскакивают уведомления навроде
Warning: Attempt to modify property of non-object in /home/XXXXXX/public_html/wp-content/themes/XXXXXXX/functions.php on line 21
Если они вас не смущают, пользуйтесь вариантом ниже.

Add_filter("site_transient_update_plugins", "sheensay_site_transient_update_plugins"); // Вешаем функцию на специальный фильтр function sheensay_site_transient_update_plugins ($value) { unset($value->response["webmaster-yandex/webmaster-yandex.php"]); // Здесь указывается относительный путь к главному файлу плагина return $value; }

Строго говоря, мы отключаем уведомления о необходимости обновить плагин. Вместе с этим и отключается обновление.

В октябре 2013 года вышла версия WordPress 3.7, а вместе с ней и новая фишка - автоматические обновления. Были и другие новинки, но сейчас не о них.

Авто-обновление стала самой яркой, очень полезной и удобной штукой. Теперь, при выходе новой версии WordPress обновит себя сам.

Общие знания про автообновления

В WP есть 4 типа авто-обновлений

    Ядро WordPress (движок)

    • «минорные релизы» (minor) - версии веток, например: 3.7 > 3.7.1 > 3.7.2. В них исправляются ошибки, уязвимости и баги.
      По умолчанию: Включено

      «мажорные релизы» (major) - основные версии, например: 3.9 > 4.0 > 4.1 > 4.2. В этих версиях добавляется новый функционал.
      По умолчанию: Отключено

    • «релизы разработчиков» (development) - релизы альфа и бета версий. Работает только если у вас установлена альфа или бета версия WordPress.
      По умолчанию: Включено, только если установлена альфа/бета версия движка

    Файлы переводов.
    По умолчанию: Включено

    Темы.
    По умолчанию: Отключено

  1. Плагины.
    По умолчанию: Отключено
Включено по умолчанию

По умолчанию авто-обновление включено только для «минорных релизов ядра» и «файлов перевода». Если у вас установлена альфа или бета версия wordpress, то «релизы разработчиков» также включены по умолчанию.

«Мажорные релизы» не подлежат авто-обновлению, потому что в них добавляется новый функционал, который может нарушить работу сайта.

Темы и плагины также не подлежат авто-обновлению, по понятным причинам...

Изменение настроек авто-обновления

Изменять поведение авто-обновления можно через константы в файле wp-config.php или через фильтры в плагинах или MU плагине . Константы также можно указывать в плагинах, если они еще не определены.

Также, можно использовать хуки в файле темы functions.php . Там еще не поздно (проверено).

Какие классы ядра отвечают за авто-обновление

За общую логику авто-обновлений отвечает класс WP_Automatic_Updater{} . В зависимости от типа обновления он вызывает классы:

Глобальное отключение авто-обновлений

Тут описаны варианты полного отключения авто-обновлений, отключает возможность как-либо настраивать авто-обновления на низком уровне, например через WP_AUTO_UPDATE_CORE (см. ниже).

Полностью отключить автообновления можно пятью способами.

1. AUTOMATIC_UPDATER_DISABLED - мягкое отключение

Если определить эту константу в файле wp-config.php или в плагине, то все автообновления будут отключены:

Define("AUTOMATIC_UPDATER_DISABLED", true); // полностью отключает автообновления

Однако такое отключение можно «перебить» хуком automatic_updater_disabled .

2. Хук automatic_updater_disabled - жесткое отключение

Чтобы отключить обновление полностью и не давать возможность изменять его через константу AUTOMATIC_UPDATER_DISABLED .

Add_filter("automatic_updater_disabled", "__return_true");

3. Хук auto_update_(type) - жесткое отключение

define("DISALLOW_FILE_MODS", true);

Авто-обновления ядра WordPress (движка)

Изменять настройки авто-обновления ядра WordPress, можно через константу WP_AUTO_UPDATE_CORE , которую можно добавить в файл wp-config.php или плагин:

# Включает обновления ядра только для минорных версий (по умолчанию) define("WP_AUTO_UPDATE_CORE", "minor"); # Отключает все обновления ядра define("WP_AUTO_UPDATE_CORE", false); # Включает все обновления ядра (минорные и мажорные) define("WP_AUTO_UPDATE_CORE", true);

Также авто-обновление ядра можно настроить через хуки. Они перебивают то что указано в константе WP_AUTO_UPDATE_CORE .

// авто-обновление минорных версий (версии внутри ветки) add_filter("allow_minor_auto_core_updates", "__return_false"); // авто-обновление мажорных версий (версии между ветками) add_filter("allow_major_auto_core_updates", "__return_false"); // авто-обновление версий разработчиков // (включено по умолчанию, если установлена альфа или бета версия движка) add_filter("allow_dev_auto_core_updates", "__return_false");

Чтобы включить или отключить обновления используйте "__return_true" или "__return_false" соответственно.

Авто-обновления тем и плагинов

По умолчанию авто-обновления отключены для тем и плагинов.

// Включение авто-обновлений для всех плагинов add_filter("auto_update_plugin", "__return_true"); // Включение авто-обновлений для всех тем add_filter("auto_update_theme", "__return_true");

Используйте __return_false вместо __return_true , чтобы наоборот отключить обновление.

Включение автообновления только для указанного плагина:

Add_filter("auto_update_plugin", "auto_update_specific_plugins", 10, 2); function auto_update_specific_plugins($update, $item){ // Массив ярлыков плагинов, которые нужно авто-обновлять $plugins = array ("akismet", "buddypress",); if(in_array($item->slug, $plugins)) return true; // обновлять else return $update; // вернем без изменений }

Авто-обновления файлов перевода

Для управления обновлением перевода, есть хук:

// отключим авто-обновление файлов перевода add_filter("auto_update_translation", "__return_false");

Уведомления об авто-обновлении на почту

При обновлении ядра, админ получает письмо об авто-обновлении. Такую отправку можно отключить через хук auto_core_update_send_email:

// отключим отправку письма об автообновлении add_filter("auto_core_update_send_email", "__return_false");

Почту куда отправлять письмо можно изменить через фильтр:

Advanced Automatic Updates

Для управления автообновлением создан плагин Advanced Automatic Updates .

Плагин отключает автообновление при активации и позволяет включить обновления по типам:

    Включить автообновление между ветками версий (major versions);

    Включить автообновление ядра внутри ветки (Minor and security versions);

    Включить автообновление плагинов (Update your plugins);

    Включить автообновление тем (Update your themes);

    Изменить почту на которую будут приходить письма об обновлении. Или отключить уведомление на почту (Disable email notifications);

  • Когда получать уведомления об ошибках (Debug Information).
Loading...Loading...