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

Última Atualização

28 de agosto de 2019

Visualizações

166

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