Intereting Posts
Обновление до 3.1 – Неустранимая ошибка: вызов неопределенной функции wp_cache_get () Пользовательский тип сообщения – ошибки Может ли идентификатор сообщения 0? Пользовательские циклы, липкие сообщения и кошмар с разбивкой на страницы WordPress и $ _GET Params Создание токена доступа к почтовой странице Использование условных выражений, когда на главной странице находится страница, а блог – блог / блог Заменить тире с пробелом в имени пользователя при входе в систему Лучшее изображение не работает из-за пользовательской роли пользователя? Страница категории отображает только сообщения из пользовательского типа Создавайте собственные постоянные ссылки на YouTube для нескольких пользовательских типов сообщений Используйте get_post_types для запроса только пользовательских типов сообщений Советы по созданию нескольких типов содержимого с перекрестными тегами Получить массив коротких кодов внутри строки Мета-описание – код шаблона для получения описания категории

Запретить или отключить автоматическую проверку обновлений

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

Я все равно обновляюсь один раз в то же время, и в любом случае, скорее всего, буду выполнять обновления вручную, поэтому я создал плагин для удаления кнопки « Обновления» из панели администратора. Я думал, что это сделает трюк, но, видимо, только удаляет кнопку, и фактическая проверка все еще выполняется в фоновом режиме.

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

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

Как можно отключить проверку автоматического обновления в WordPress?

Как отключить основные автоматические обновления, но включить автоматическое обновление плагинов и тем

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

define( 'WP_AUTO_UPDATE_CORE', false ); 

Затем Включите плагины / темы:

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

Как полностью отключить автоматические обновления WordPress

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

 define( 'AUTOMATIC_UPDATER_DISABLED', true ); 

Марк Ярквит уже опубликовал об этом в своем блоге некоторое время назад. В основном это просто сводит запросы к публичным репозиториям SVN на wp dot org через фильтры HTTP HTTP API.

Для плагинов (должен быть размещен внутри плагина):

 add_filter( 'http_request_args', 'wpse_102554_deny_plugin_updates', 5, 2 ); function wpse_102554_deny_plugin_updates( $r, $url ) { if ( 0 !== strpos( $url, 'http://api.wordpress.org/plugins/update-check' ) ) return $r; $plugins = unserialize( $r['body']['plugins'] ); unset( $plugins->plugins[ plugin_basename( __FILE__ ) ], $plugins->active[ array_search( plugin_basename( __FILE__ ), $plugins->active ) ] ); $r['body']['plugins'] = serialize( $plugins ); return $r; } с add_filter( 'http_request_args', 'wpse_102554_deny_plugin_updates', 5, 2 ); function wpse_102554_deny_plugin_updates( $r, $url ) { if ( 0 !== strpos( $url, 'http://api.wordpress.org/plugins/update-check' ) ) return $r; $plugins = unserialize( $r['body']['plugins'] ); unset( $plugins->plugins[ plugin_basename( __FILE__ ) ], $plugins->active[ array_search( plugin_basename( __FILE__ ), $plugins->active ) ] ); $r['body']['plugins'] = serialize( $plugins ); return $r; } 

Для Темы (необходимо размещать внутри functions.php темы и работает только для текущей активной темы):

 add_filter( 'http_request_args', 'wpse_102554_deny_theme_updates', 5, 2 ); function wpse_102554_deny_theme_updates( $r, $url ) { if ( 0 !== strpos( $url, 'http://api.wordpress.org/themes/update-check' ) ) return $r; $themes = unserialize( $r['body']['themes'] ); unset( $themes[ get_option( 'template' ) ], $themes[ get_option( 'stylesheet' ) ] ); $r['body']['themes'] = serialize( $themes ); return $r; } с add_filter( 'http_request_args', 'wpse_102554_deny_theme_updates', 5, 2 ); function wpse_102554_deny_theme_updates( $r, $url ) { if ( 0 !== strpos( $url, 'http://api.wordpress.org/themes/update-check' ) ) return $r; $themes = unserialize( $r['body']['themes'] ); unset( $themes[ get_option( 'template' ) ], $themes[ get_option( 'stylesheet' ) ] ); $r['body']['themes'] = serialize( $themes ); return $r; } 

Джон Блэкберн написал плагин для отключения обновлений тем .

Хорошо, вот решение, которое удаляет доступные обновления, а также предотвращает проверку обновлений.

Это решение предполагает PHP> 5.3 (поскольку он использует анонимные функции)

Часть 1) Удаляет все существующие обновления:

 add_filter( 'site_transient_update_plugins', function ( $oUpdatesResult ) { if ( ! is_object( $oUpdatesResult ) ) { $oUpdatesResult = new stdClass(); } $oUpdatesResult->response = array(); return $oUpdatesResult; }, PHP_INT_MAX ); 

Часть 2) Предотвращает исходящий HTTP-запрос, выполняющий фактическую проверку:

 add_filter( 'pre_http_request', function ( $bFalse, $aReqParams, $sUrl ) { if ( strpos( $sUrl, '//api.wordpress.org/plugins/update-check/1.1/' ) ) { $bFalse = null; } return $bFalse; }, PHP_INT_MAX, 3 ); 

Следует отметить:

  • WordPress проверяет наличие обновлений только при загрузке определенных страниц на стороне администратора, таких как страница плагинов и страница обновления, поэтому вы на самом деле не получаете какую-либо производительность.
  • Это только для плагинов. Чтобы обрабатывать темы, повторите то, что вы видите здесь, кроме тех случаев, когда вы видите «плагин» вместо «темы». Т.е. в имени фильтра и URL-адресе.
  • вы можете поместить это в функцию function.php вашей темы