Remova? Ver = de wp_register_script


8

Estou recebendo piadas no teste de velocidade do Google em relação às seqüências de caracteres nos meus scripts. Então, estou tentando removê-los passando false como argumento para esse parâmetro. No entanto, parece não ter efeito:

wp_register_script('myscript', get_bloginfo('template_directory').'/scripts.myversionnumber.js',false,false,true);
wp_enqueue_script('myscript');

PS: a parte "myversionnumber" do nome do arquivo js é o meu meio de controlar o cache / controle de versão em vez da abordagem? Ver = que aparentemente desativa alguns servidores proxy (de acordo com o teste de velocidade de página do Google):

Remover cadeias de consulta de recursos estáticos A ativação do cache público nos cabeçalhos HTTP para recursos estáticos permite que o navegador faça o download de recursos de um servidor proxy próximo e não de um servidor de origem remota. Saber mais

Sugestões para esta página

Recursos com um "?" no URL não são armazenados em cache por alguns servidores de cache proxy. Remova a cadeia de consulta e codifique os parâmetros na URL para os seguintes recursos:


Pergunta interessante, nunca soube que as cadeias de consulta aumentariam a velocidade da página. Enquanto eu não tiver uma solução, deixe-me comentar sobre a configuração do parâmetro como "false": Após digitar um número de versão ou o padrão é a versão atual do wordpress.
Johannes Pille

Eu pensei que o script seria armazenado em cache, mesmo com um número de versão - e que a alteração do número da versão 'quebraria' o cache, intencionalmente, para que o novo, e não o antigo, fosse carregado ...
Stephen Harris

@ Stephen, essa é exatamente a ideia. No entanto, aparentemente alguns servidores de cache proxy não armazenam em cache URLs de recursos com parâmetros de string de consulta. É por isso que estou optando por codificar os parâmetros no nome do arquivo. Mesmo efeito, menos bagagem.
Scott B

Olá Scott B. Estou enfrentando o mesmo problema. Depois de executar um teste no gtmetrix, estou recebendo erros para a consulta. A solução fornecida pelo @SickHippie funcionou para você? É seguro usá-lo?
kat_indo

Respostas:


9

Eu acho que você tem que passar NULL como o 4º parâmetro.

wp_register_script(
    'myscript',
    get_bloginfo('template_directory').'/scripts.myversionnumber.js',
    false,
    NULL,
    true);
wp_enqueue_script('myscript');

3

Você pode passar nullcomo o valor da versão para wp_register_scriptou wp_enqueue_scripte deve soltar a sequência de caracteres da consulta.

<?php
wp_enqueue_script(
   'myscript',
   '/path/to/script.js',
   array(),
   null
);

3

Prefácio

Resolvi isso de maneira muito diferente de SickHippie e chrisguitarguy e acho que não é assim que deve ser resolvido, mas está funcionando muito bem para mim.

O código...

Coloquei esse trecho de código no final do functions.phparquivo do meu tema :

function remove_cssjs_querystring( $src ) {
  if( strpos( $src, '?rev=' ) ) // copy/paste this line and the next one to take away what you want from the end of your css/js
    $src = remove_query_arg( 'rev', $src );
  if( strpos( $src, 'ver=' ) )
    $src = remove_query_arg( 'ver', $src );
  return $src;
}
add_filter( 'style_loader_src', 'remove_cssjs_querystring', 10, 2 );
add_filter( 'script_loader_src', 'remove_cssjs_querystring', 10, 2 );

De onde veio a ideia ...

Eu estava procurando no Google e encontrei este artigo , mas continuava tendo um problema com o css / js: nesse momento, meu código ainda tinha (aqui e ali) no final algo parecido .../some-stylesheet.css?rev=...e pensei em estender o trecho de código a pouco para incluir qualquer coisa que poderia ter sido depois .css.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.