Acelerando o admin do WordPress - desative as verificações de atualização agressivas

Acelerando o admin do WordPress - desative as verificações de atualização agressivas

WordPress - Point Comunicação Web

Categoria

WordPress

Postado em

28 de agosto de 2019

Tempo de leitura

7 minutos

Visualizações

5024

Esta é, na minha opinião, uma característica obrigatória para todos os sites do WordPress, como eles dizem – um deve ter. Por quê? Porque a verificação de atualizações deve ir em segundo plano e nada mais, com muito poucas exceções! Mas vamos ver o que é o que …

O motivo dos bloqueios no painel de administração

Acho que todos que estão mais ou menos conectados ao WordPress perceberam freios periódicos ao acessar qualquer página de administração: o console de administração, a página de plugins ou aqueles (especialmente aqui!). Esses freios ocorrem periodicamente: seja lenta ou rapidamente … Isso acontece porque o WordPress verifica novas versões: o kernel, plugins, temas e traduções …

O fato é que para checar novas versões ao gerar uma página, o PHP envia uma requisição HTTP, ou seja, 3 requisições: kernel, temas, plugins … Se houver plugins pagos, normalmente há mais uma requisição para cada plugin … Para uma requisição HTTP no PHP, a geração de páginas congela até que cada solicitação receba um resultado, e cada solicitação leva em média 0,5 a 1 segundo. Então acontece que a página trava por 3-4 segundos.

A frequência dessas verificações em diferentes páginas do painel de administração é a seguinte:

  • Na página Console > Atualizações , uma vez por minuto.
  • Na página Plugins ou Aparência > Temas , uma vez por hora.
  • Em qualquer página na área de administração – uma vez a cada 12 horas (duas vezes por dia).

Além disso, essas verificações são acionadas durante o evento 'admin_init', o que significa que quando o AJAX solicita. Apesar do fato de que isso acontece uma vez a cada meio dia, ainda é desagradável quando alguém captura uma solicitação AJAX com um atraso de 3 segundos … Além disso, esse comportamento para solicitações AJAX também funciona no frontend, e isso já não é nada bom …

Front e admin

No front, todas as verificações ficam penduradas na coroa e, a partir daí, são acionadas em segundo plano. Quando um usuário faz logon no site, o WP inicia a coroa (com uma certa freqüência) e faz isso sem demora (segundo plano). Se o teste veio na tarefa da coroa, então acontece … Na frente, tudo está bem e nada diminui.

No painel de administração , uma “verificação agressiva” ocorre não em segundo plano, mas diretamente durante a geração da página. É feito para que ao entrar no painel de administração, imediatamente, no menu, veremos que há atualizações. Se houvesse uma verificação de antecedentes, para ver a disponibilidade de atualizações, precisaríamos ir novamente à página. Se você comparar este menos com os freios, eu definitivamente escolho isso!

Bloqueios e cache de objetos

Se um plugin de cache de objetos estiver instalado no site, a situação com os bloqueios só piorará. Porque quando o cache de objetos é usado, não há opções temporárias no banco de dados – tudo é gravado no cache e, se você limpar esse cache, tudo é limpo, incluindo dados na última verificação de novas versões: kernel, plugins, temas e traduções.

Assim, vale a pena limpar o cache de objetos e nós definitivamente pegaremos um atraso de 3 segundos em qualquer página de administração. Durante o processo de desenvolvimento, às vezes, você geralmente precisa limpar o cache de objetos e cada vez após a limpeza a página é carregada por 3-4 segundos gritar

Solução (desative os bloqueios)

Para se livrar dos bloqueios, mas não desative a verificação de atualização em tudo. Cole o seguinte código no arquivo de tema functions.php, ou onde quer que você cole esses códigos lá …

Esse código desativa completamente a verificação “agressiva” de atualizações no painel de administração. Mas não toca na verificação de atualização do core. Além disso, se você precisar verificar novas versões agora, acesse a página Console > Atualizações – lá a verificação “agressiva” não é desativada e funciona a cada minuto …

É assim que deve funcionar, na minha opinião, fora da caixa. Mas WP tem muito “serviço” de atualizações … Talvez isso mude no futuro, embora eu duvide … Bem, por enquanto segue abaixo o código:

 

/ ** 
 * Desative a verificação forçada de novas versões do WP, plugins e temas no painel de administração 
 * para que ela não diminua quando não entrar e entrar por muito tempo ... 
 * Todas as verificações serão feitas invisivelmente pelas coroas ou ao entrar na página: "Console > Atualizações " 
 * 
 * @author Point Comunicação (https://pointcomunicacao.ppg.br) 
 * @versão 1.0 
 * / 
if ( is_admin () ) { 
    // desativa a verificação de atualização para qualquer entrada no painel administrativo
    remove_action( 'admin_init', '_pointcom_update_core' );
    remove_action( 'admin_init', '_pointcom_update_plugins' );
    remove_action( 'admin_init', '_pointcom_update_themes' );

    // desativa a checagem de atualizações ao entrar em uma página especial no painel administrativo
    remove_action( 'load-plugins.php', 'wp_update_plugins' );
    remove_action( 'load-themes.php', 'wp_update_themes' );

    // deixa uma verificação forçada ao entrar na página de atualizações ...
    //remove_action( 'load-update-core.php', 'wp_update_plugins' );
    //remove_action( 'load-update-core.php', 'wp_update_themes' );

    // a página de administração interna "Update / Install Plugin" ou "Update / Install Theme" - não interfere ... 
    //remove_action( 'load-update.php', 'wp_update_plugins' );
    //remove_action( 'load-update.php', 'wp_update_themes' ); 

    // Não tocamos no evento da coroa, as atualizações serão verificadas através dele - está tudo bem aqui! 
    //remove_action( 'wp_version_check', 'wp_version_check' );
    //remove_action( 'wp_update_plugins', 'wp_update_plugins' );
    //remove_action( 'wp_update_themes', 'wp_update_themes' );
    add_filter( 'pre_site_transient_browser_'. md5( $_SERVER['HTTP_USER_AGENT'] ), '__return_true' );
}

 

Gostou? compartilhe nas redes!! ;)

Deixe seu comentário