Eliminar? Ver = de wp_register_script


8

Me molestan las pruebas de velocidad de Google con respecto a las cadenas de consulta en mis scripts. Entonces, estoy tratando de eliminarlos pasando falso como argumento para ese parámetro. Sin embargo, no parece 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 de archivo js es mi medio de controlar la memoria caché / versionado en lugar del enfoque? Ver = que aparentemente dispara algunos servidores proxy (según la prueba de velocidad de página de Google):

Eliminar cadenas de consulta de recursos estáticos Al habilitar el almacenamiento en caché público en los encabezados HTTP para recursos estáticos, el navegador puede descargar recursos de un servidor proxy cercano en lugar de hacerlo desde un servidor de origen remoto. Aprende más

Sugerencias para esta página

Recursos con un "?" en la URL no son almacenados en caché por algunos servidores proxy de almacenamiento en caché. Elimine la cadena de consulta y codifique los parámetros en la URL para los siguientes recursos:


Pregunta interesante, nunca se supo que las cadenas de consulta aumentarían la velocidad de la página. Si bien no tengo una solución, déjame comentar cómo establecer el parámetro en "falso": Afaik, ingresas un número de versión o se establece de manera predeterminada en la versión actual de WordPress.
Johannes Pille

Pensé que el script se almacenaría en caché, incluso con un número de versión, y que alterar el número de versión 'rompería' el caché, a propósito para que se cargara el script nuevo, en lugar del antiguo ...
Stephen Harris

@Stephen, esa es exactamente la idea. Sin embargo, aparentemente algunos servidores proxy de caché no almacenarán en caché las URL de recursos con parámetros de cadena de consulta. Es por eso que estoy optando por codificar los parámetros en el nombre del archivo. Mismo efecto, menos equipaje.
Scott B

Hola Scott B. Estoy enfrentando el mismo problema. Después de ejecutar una prueba en gtmetrix, recibo errores para la consulta. ¿La solución provista por @SickHippie funcionó para usted? ¿Es seguro usarlo?
kat_indo

Respuestas:


9

Creo que tienes que pasar NULL como el cuarto parámetro.

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

3

Puede pasar nullque el valor de la versión de wp_register_scripto wp_enqueue_scripty debe dejar caer la cadena de consulta.

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

3

Prefacio

Resolví esto de manera muy diferente a SickHippie y chrisguitarguy y supongo que no es así como se supone que debe resolverse, pero está funcionando muy bien para mí.

El código...

Puse este fragmento de código al final del functions.phparchivo de mi 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 dónde surgió la idea ...

Lo estaba buscando 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 así .../some-stylesheet.css?rev=...y pensé en extender el fragmento de código a un poco para incluir cualquier cosa que podría haber sido después .css.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.