Evitar el parámetro de URL de versión (? Ver = XXX) en estilos y scripts en cola

12

Caso de uso

He estado experimentando con las características del espacio de trabajo de herramientas de desarrollo de Chrome. Incluye la capacidad de editar un archivo directamente en Dev Tools y hacer que la hoja de estilo guardada se actualice sola (o incluso compile y luego actualice).

Sin embargo, como se documenta en la pregunta de StackOverflow "Chrome" Auto-Recargar CSS generado "no vuelve a cargar la página cuando SASS vuelve a compilar CSS" , los parámetros de URL en la URL de la hoja de estilo evitan que Chrome note el cambio.

Resultado deseado

Eso significa que solo durante el desarrollo , quería eliminar el resultado ?ver=X.X.Xde la hoja de estilo normal <link>por wp_enqueue_style(). En otras palabras, quería el valor predeterminado href:

http://localhost/mysite/wp-includes/style.css?ver=4.1.1

para ser esto:

http://localhost/mysite/wp-includes/style.css
mrwweb
fuente

Respuestas:

12

wp_enqueue_[style/script]()Comportamiento predeterminado

El valor predeterminado para el $versionargumento de wp_enqueue_style()es false. Sin embargo, ese valor predeterminado solo significa que las hojas de estilo reciben la versión de WordPress .

Solución

Gracias a "Eliminar versión de CSS y JS en cola de WordPress" , aprendí el hecho indocumentado de que pasar nullcomo versión eliminará la versión por completo.

Ejemplo

wp_enqueue_style( 'wpse-styles', get_template_directory_uri() . '/style.css', array(), null );

Recordatorio de advertencia

Vale la pena señalar, como se señaló en la pregunta, que esto probablemente solo debe hacerse durante el desarrollo (como en el caso de uso específico). El parámetro de versión ayuda al almacenamiento en caché (y no al almacenamiento en caché) para los visitantes del sitio y, por lo tanto, probablemente debería dejarse solo en el 99% de los casos.

mrwweb
fuente
8

Gracias por tu publicación, mrwweb.

Encontré otra solución a esto, al crear un complemento muy simple que puede desactivar cuando el sitio ya no está en desarrollo.

<?php

/*
Plugin name: Strip WP Version in Stylesheets/Scripts
*/

function switch_stylesheet_src( $src, $handle ) {

        $src = remove_query_arg( 'ver', $src );
        return $src;
}
add_filter( 'style_loader_src', 'switch_stylesheet_src', 10, 2 );

?>

Pasé un par de minutos tratando de encontrar esta solución. Pensé que podría compartir otra opción aquí en lugar de crear una nueva Pregunta / Respuesta.

Ricardo Andres
fuente
no funciona ...
reggie
Esta es la respuesta correcta. Use este filtro mientras lo desarrolla y elimínelo una vez que se active.
dtbaker
Mucho mejor que los estilos de cola y cola. También aplicable a los scripts con filtroscript_loader_src
Dharma