Иногда нас не устраивает базовый функционал WordPress, либо существующих плагинов. В этом случае можно прибегнуть к редактированию системных файлов и любой обладающий минимальным навыками в программировании на php, используя в качестве справочника такой сайт, как наш — может решить практически любую возникающую задачу.
Но такой подход влечет одну существенную проблему — любой неопытный пользователь с правами администратора (например заказчик коммерческого сайта) может обновить вордпресс (или измененный плагин). Все ваши изменения потеряются, что может привести к неработоспособности сайта.
Иногда для того, чтобы получить проблемы при обновлении, даже не нужно ничего менять в системных файлах CMS. Например, при обновлении движка может возникнуть конфликт с установленной версией плагина. В этом случае Вам придется либо отказываться от функционала, который несет в себе плагин и ждать выхода версии совместимой с версией движка. Либо возиться с откатом вордпресса.
А то, что начиная с версии 3.7 технические (3.7.1, 3.7.2 и тд) версии вордпресса обновляются автоматически — только усложняет ситуацию.
Итак, рассмотрим как отключить обновления полностью и как управлять автоматическим обнослением:
Отключаем обновления полностью.
Потребует внесения изменения в function.php
Запрет обновления Вордпресс:
1 2 |
add_filter('pre_site_transient_update_core',create_function('$a', "return null;")); wp_clear_scheduled_hook('wp_version_check'); |
Запрет обновления плагинов:
1 2 3 |
remove_action( 'load-update-core.php', 'wp_update_plugins' ); add_filter( 'pre_site_transient_update_plugins', create_function( '$a', "return null;" ) ); wp_clear_scheduled_hook( 'wp_update_plugins' ); |
Запрет обновления шаблонов:
1 2 3 |
remove_action('load-update-core.php','wp_update_themes'); add_filter('pre_site_transient_update_themes',create_function('$a', "return null;")); wp_clear_scheduled_hook('wp_update_themes'); |
У этого способа есть только один недостаток — при смене шаблона все запреты анулируются. Об этом нужно помнить.
Управление автоматическим обновлением с помощью плагина
Плагин плагин Update Control. Настройки плагина появляются в разделе Настройки/Общие, если промотать вниз страницы. С помощью этого плагина можно запретить автоматические обновления самого вордпресса, плагинов, шаблонов и переводов.
Управление автоматическим обновлением c помощью конфигурационного файла.
Запрет на автоматическое обновление можно установить в файле конфигурации wp-config.php, использую специальные константы.
Например, для полного отключения автоматического обновления нужно использовать константу AUTOMATIC_UPDATER_DISABLED:
1 |
define( 'AUTOMATIC_UPDATER_DISABLED', true ); |
Учтите, это отключит также автоматические обновления плагинов, шаблонов, языковых пакетов.
С помощью константы WP_AUTO_UPDATE_CORE можно управлять автоматическим обновлением ядра Вордпресс.
Значение minor — разрешить автоматическое обновления только на технические релизы (например с 3.7 на 3.7.1 и тд)
Значение false — отключит автоматическое обновление ядра
Значение true — включит автоматическое обновление для всех релизов.
1 |
define( 'WP_AUTO_UPDATE_CORE', false ); |
Также, для управления автоматическими обновлениями, можно использовать специальные фильтры:
- allow_major_auto_core_updates — обновление основных релизов (с 3.7 на 3.8)
- allow_minor_auto_core_updates — обновление на технические релизы (с 3.7 на 3.7.1 и 3.7.2)
- allow_dev_auto_core_updates — обновление на версии для разработчиков (с 3.7-RC до 3.7-RC2)
- auto_update_core — разрешить автоматическое обновление ядра
Можно написать простой плагин, чтобы использовать эти фильтры:
Например, чтобы запретить автоматическое обновление ядра WordPress:
1 2 3 4 |
/** * Plugin Name: Disable Core Updates */ add_filter( 'auto_update_core', '__return_false' ); |
А с помощью фильтров auto_update_theme и auto_update_plugin можно управлять автоматическими обновлениями шаблонов и плагинов.
Так то это правельно, но все же япридерживаюсь обновления системы так как они стараются идти в ногу со времнем. Популярные плагины обычно обновляются в течении суток после выхода новой версии. Ну чуть меньше нагрузка на сервер небольшой плюс.
Приветствую — подскажите в каком месте вписать код полного откл обновл
вот часть моего конфига
// ** Параметры MySQL: Эту информацию можно получить у вашего хостинг-провайдера ** //
/** Имя базы данных для WordPress */
define(‘WP_CACHE’, true); //Added by WP-Cache Manager
define( ‘WPCACHEHOME’,
Александр, вписать строки кода запрета автоматического обновления WordPress в файле конфигурации wp-config.php можно практически в любом месте, обычно это делается после настроек базы данных и до строки «Это всё, дальше не редактируем. Успехов!»
спасибо сделал и прописал код откл ривизий тож
Спасибо тебе, неизвестный дядька за твой сайтик. Закинул в избранное.
Кучу нервов сберегает, отключение обновлений. Когда все работает отлично обновления только могут что то испортить. Если кто боится за безопасность, резервнокопируйте все автоматично и все будет гуд.