Remove ?ver= from wp_register_script
Estoy recibiendo advertencias en la prueba de velocidad de Google sobre las cadenas de consulta en mis scripts. Por lo tanto, estoy intentando eliminarlas pasando false como argumento para ese parámetro. Sin embargo, parece no tener efecto:
wp_register_script('myscript', get_bloginfo('template_directory').'/scripts.myversionnumber.js',false,false,true);
wp_enqueue_script('myscript');
PD: la parte "myversionnumber" del nombre del archivo js es mi método para controlar el caché/versionado en lugar del enfoque ?ver= que aparentemente causa problemas en algunos servidores proxy (según la prueba de velocidad de Google Pagespeed):
Eliminar cadenas de consulta de recursos estáticos Habilitar el almacenamiento en caché público en los encabezados HTTP para recursos estáticos permite que el navegador descargue recursos desde un servidor proxy cercano en lugar de desde un servidor de origen remoto. Más información
Sugerencias para esta página
Los recursos con un "?" en la URL no se almacenan en caché por algunos servidores proxy. Elimina la cadena de consulta y codifica los parámetros en la URL para los siguientes recursos:
Prólogo
Resolví esto de manera muy diferente a SickHippie y chrisguitarguy y supongo que no es la forma en que se supone que debe resolverse, pero funciona muy bien para mí.
El código...
Coloqué este fragmento de código al final del archivo functions.php de mi tema:
function remove_cssjs_querystring( $src ) {
if( strpos( $src, '?rev=' ) ) // copia/pega esta línea y la siguiente para eliminar lo que quieras del final de tu 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 dónde vino la idea...
Estaba buscándolo en Google y encontré este artículo, pero seguía teniendo un problema con css/js: en este punto mi código todavía tenía (aquí y allá) al final algo como .../some-stylesheet.css?rev=... y pensé en extender un poco el fragmento de código para incluir cualquier cosa que pudiera haber después de .css.