Remove? ver = from wp_register_script

8

Estou ficando obcecado com o teste de velocidade do google em relação aos querystrings em meus scripts. Então, eu estou tentando removê-los, passando false como o argumento para esse parâmetro. No entanto, isso não parece 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 é meu meio de controlar o cache / controle de versão em vez da abordagem? ver = que aparentemente desvia alguns servidores proxy (de acordo com o teste de velocidade de páginas do Google):

  

Remover strings de consulta de recursos estáticos Ativando o armazenamento em cache público em   os cabeçalhos HTTP para recursos estáticos permitem que o navegador baixe   recursos de um servidor proxy próximo, em vez de uma origem remota   servidor. Saiba mais

     

Sugestões para esta página

     

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

    
por Scott B 17.05.2012 / 18:10

3 respostas

8

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

wp_register_script(
    'myscript',
    get_bloginfo('template_directory').'/scripts.myversionnumber.js',
    false,
    NULL,
    true);
wp_enqueue_script('myscript');
    
por SickHippie 17.05.2012 / 18:29
3

Você pode passar null como o valor da versão para wp_register_script ou wp_enqueue_script e deve eliminar a string de consulta.

<?php
wp_enqueue_script(
   'myscript',
   '/path/to/script.js',
   array(),
   null
);
    
por chrisguitarguy 17.05.2012 / 18:31
3

Prefácio

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

O código ...

Eu coloquei este snippet de código no final do arquivo functions.php 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 eu continuei tendo um problema com css / js: neste momento meu código ainda tinha (aqui e ali) algo como .../some-stylesheet.css?rev=... e eu pensei em estender o trecho de código um pouco para incluir qualquer coisa que pudesse foram depois de .css .

    
por vcoppolecchia 19.09.2014 / 01:51