Evita la caché mientras desarrollas

Resulta bastante incómodo en entornos de desarrollo que tanto los ficheros Javascript como los de estilos se queden cacheados ya que la URL no cambia, sobre todo si estamos trabajando sobre temas hijo que sobreescriben estilos o funciones.

Como bien sabemos, desde hace unas cuantas versiones, WordPress incorpora a la URL de nuestros scripts un parámetro ver que indica la versión de WP que estamos utilizando.

La solución es bastante sencilla y pasa por modificar las URL que ha generado WordPress en las llamadas que utilizamos métodos wp_enqueue_style y wp_enqueue_script, consiguiendo que el navegador crea que es un nuevo archivo a descargar.

Para realizar esta modificación sólo tenemos que añadir las siguientes líneas a nuestro fichero functions.

// Eliminar la versión de WP de la url
function remove_src_version ( $url ) {
//Regex quitar el parametro ver
$url = preg_replace('/([?&])' . 'ver' . '=[^&]+(&|$)/','$1',$url);
//Eliminar caracteres erroneos al final
if (preg_match("/\?$/", $url) || preg_match("/\&$/", $url))
return substr($url, 0, -1);
else
return $url;
}
// Añadir un parametro Random a la url
function add_src_param ( $url ) {
$url = remove_src_version($url);
$parsed_url = parse_url($url);
if(isset($parsed_url['query']))
return $url . '&__rtime=' . time();
else
return $url . '?__rtime=' . time();
}
add_filter( 'script_loader_src', 'add_src_param' );
add_filter( 'style_loader_src', 'add_src_param' );

Básicamente lo que hacemos es añadir dos Hooks para modificar todas las cargas de scripts y styles que realice WordPress y modificar el parámetro URL en dos pasos: quitamos el parámetro ver y añadimos un parámetro dinámico a la misma.

Y recordar, una vez finalizado el desarrollo, eliminar estos filtros de vuestro functions.php del tema activo.

Nota: a veces no solo el navegador está cacheando los archivos, es posible que exista una CDN intermedia o alguna cabecera a nivel de servidor que también fuerce el cacheo de dichos archivos.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(10 votos, promedio: 4.9)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

4 comentarios en “Evita la caché mientras desarrollas”

  1. Muy bien. Como complemento a lo mencionado, también resulta importante desactivar la concatenación de scripts a fin de que tanto archivos JS como CSS se carguen separadamente. Sólo es necesario agregar en wp-config.php lo siguiente:

    define( 'CONCATENATE_SCRIPTS' , false );

    Recordar eliminar esa línea cuando se finalice el desarrollo.

    1. Fernando Puente

      Gracias Dario.
      CONCATENATE_SCRIPTS está relacionado con el backend de administración de WordPress.
      Muy útil para resolver problemas con algunos maquetadores visuales y llamadas a jQuery de plugins antiguos desde la versión 4.0 de WordPress.
      Saludos

      1. Jajajaja ya veo… totalmente fuera de tópico mi comentario. De hecho lo podemos calificar como un genuino «lapsus brutis mañanero» y una lección en vivo sobre las consecuencias de levantarse de la cama y salir directo a opinar sin leer bien. 😛

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido