Отключение автоматической проверки обновлений в WordPress

10 июн. 2013 г., 21:29:20
Просмотры: 18K
Голосов: 9

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

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

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

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

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

6
Комментарии

Ты читал это?

fuxia fuxia
10 июн. 2013 г. 21:49:26

Также посмотрите обновление здесь http://wordpress.stackexchange.com/questions/67945/how-do-i-disable-dashboard-update-notifications-for-subscribers/67952#67952 , это вызывает предупреждение PHP, но я забыл почему.

Wyck Wyck
10 июн. 2013 г. 22:03:29

Также ознакомьтесь с инструкциями в этом WP codex: http://codex.wordpress.org/Configuring_Automatic_Background_Updates

Tara Tara
24 янв. 2014 г. 03:16:27

Информация о фоновых автоматических обновлениях в 3.7 не относилась к тому, о чем я говорил (я всё ещё использую 3.5 — я избегаю обновлений, пока не решена проблема с форматами записей, потому что мне часто нужно публиковать просто одно фото или предложение, а не целую запись). Однако вопрос об уведомлениях об обновлениях в консоли определённо связан. Когда я снова запущу свой портативный веб-сервер, я протестирую это.

Synetech Synetech
28 мар. 2014 г. 03:40:03

Похожий вопрос: https://wordpress.stackexchange.com/questions/20580/disable-update-notification-for-individual-plugins

Jesse Nickles Jesse Nickles
15 дек. 2022 г. 12:58:36
Показать остальные 1 комментариев
Все ответы на вопрос 5
0

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

define( 'WP_HTTP_BLOCK_EXTERNAL', true );
define( 'AUTOMATIC_UPDATER_DISABLED', true );
define( 'WP_AUTO_UPDATE_CORE', false );

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

26 нояб. 2018 г. 00:27:28
1

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

Если вы хотите остановить автоматические обновления ядра 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 );
20 дек. 2014 г. 06:25:31
Комментарии

Это не предотвращает проверку обновлений в WordPress.

Mati Mati
10 апр. 2015 г. 11:14:35
0

Следующий код отключит автоматическую проверку обновлений в админке WordPress. Вы можете добавить его в файл functions.php вашей темы.

remove_action('admin_init', '_maybe_update_core');
remove_action('admin_init', '_maybe_update_plugins');
remove_action('admin_init', '_maybe_update_themes');
14 нояб. 2024 г. 05:30:49
1

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

Это решение предполагает использование 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 проверяет обновления только при загрузке определенных страниц в админке, таких как страница плагинов или страница обновлений, так что вы не получите реального прироста производительности.
  • Это работает только для плагинов. Для тем повторите то же самое, заменив "plugin" на "theme" в названии фильтра и URL.
  • Вы можете добавить этот код в файл function.php вашей темы.
30 авг. 2017 г. 15:35:00
Комментарии

Что нужно изменить, чтобы отключить проверку обновлений ядра?

iBug iBug
20 авг. 2020 г. 14:36:19
1

Марк Ярквит уже писал об этом в своем блоге некоторое время назад. По сути, этот код просто отклоняет запросы к публичным SVN-репозиториям на wp dot org через фильтры WP 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;
}

Для тем (должен быть размещен в файле 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;
}

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

11 июн. 2013 г. 03:29:39
Комментарии

Я думаю, что сниппеты не будут работать. Начиная с WordPress 3.7 API работает со строкой JSON. Функция serialize не может работать с JSON, используйте в качестве альтернативы json_decode и json_encode. Полный исходный код можно посмотреть в этом gist - https://gist.github.com/bueltge/5a3545ada7e68d367424

bueltge bueltge
6 июл. 2014 г. 15:22:57