Prevenir / Desabilitar verificação de atualização automática

4

O WordPress verifica automaticamente se há atualizações e todos os temas e plugins instalados. Isso adiciona um atraso irritantemente longo ao carregamento ( qualquer ) das páginas do WordPress. Acontece apenas uma vez por dia e cargas de páginas subseqüentes não o fazem, mas é tão longo, que me faz pensar duas vezes se vale a pena abrir a primeira página (especialmente se eu precisar fazer uma rápida coisa em vez de passar o dia todo no WordPress).

Eu só atualizo de vez em quando, e prefiro realizar atualizações manualmente, então eu criei um plugin para remover o botão Atualizações da barra de administração. Eu pensei que isso daria certo, mas aparentemente apenas remove o botão e a verificação real ainda é executada em segundo plano.

Todos os outros programas do mundo permitem que você desative atualizações automáticas, então espero que haja uma maneira de fazer o mesmo para o WordPress, mas se houver, é um pouco bem-oculto.

Quando tentei encontrar uma solução, todas as perguntas que surgiram foram o oposto, sobre como encontrar uma maneira de forçar as atualizações automáticas a se aplicarem (não apenas verificar automaticamente se há atualizações).

Como as verificações automáticas de atualizações podem ser desativadas no WordPress?

    
por Synetech 10.06.2013 / 20:29

4 respostas

3
  

Como desativar as atualizações automáticas do núcleo, mas ativar os plug-ins e os temas automáticos   atualizações

     

Se você quiser parar as atualizações automáticas do núcleo do WordPress, mas   habilitá-los para seus Plugins e / ou Temas, você pode adicionar essas linhas em   o arquivo wp-config.php: interrompa as atualizações automáticas do núcleo:

define( 'WP_AUTO_UPDATE_CORE', false );
  

Em seguida, ative os plug-ins / temas:

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

Como desativar completamente as atualizações automáticas do WordPress

     

Se você quiser desabilitar completamente as atualizações automáticas do WordPress, abra o   wp-config.php e adicione esta linha a ele:

define( 'AUTOMATIC_UPDATER_DISABLED', true );
    
por ravi patel 20.12.2014 / 05:25
0

Mark Jarquith já postou sobre isso em seu blog há um tempo atrás. Basicamente, ele apenas aplica solicitações aos repositórios SVN públicos no wp dot org por meio dos filtros da API HTTP do WP.

Para Plugins (deve ser colocado dentro do plugin):

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;
}

Para temas (deve ser colocado dentro de functions.php do tema e só funciona para o tema ativo no momento):

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;
}

John Blackburn escreveu um plugin para desativar atualizações de temas .

    
por kaiser 11.06.2013 / 02:29
0

Ok, aqui está uma solução que remove atualizações disponíveis e também impede a verificação de atualizações.

Esta solução assume o PHP > 5.3 (já que usa funções anônimas)

Parte 1) Limpa as atualizações existentes:

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

Parte 2) Impede a solicitação HTTP de saída que executa a verificação real:

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
);

Pontos a serem observados:

  • O WordPress só verifica atualizações quando você carrega determinadas páginas do lado do administrador, como a página de plugins e a página Atualizar, para que você não esteja ganhando nenhum desempenho.
  • Isso é apenas para plugins. Para lidar com temas, repita o que você vê aqui, exceto onde você vê "plugin" substituir por "tema". Ou seja no nome do filtro e no URL.
  • você pode colocar isso na função do seu tema.php
por Paul G. 30.08.2017 / 14:35
0

Isso funcionou para eu desabilitá-lo no host local - o que era muito chato, já que ele estava atrás de um firewall e a espera do tempo limite era enorme.

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

Note que não tenho certeza se a desativação de WP_HTTP_BLOCK_EXTERNAL é necessária. Não recomendo que você o desative em um servidor que exija comunicação com outros servidores.

    
por Maciej Krawczyk 25.11.2018 / 23:27