Impedisci parametro URL versione (? Ver = XXX) su stili e script accodati


12

Caso d'uso

Ho sperimentato le funzionalità di Chrome Dev Tools Workspace. Include la possibilità di modificare un file direttamente in Dev Tools e fare in modo che il foglio di stile salvato si aggiorni da solo (o addirittura compili e quindi aggiorni!).

Tuttavia, come documentato nella domanda StackOverflow "Chrome" Ricarica automaticamente CSS generato "di Chrome non ricarica pagina quando SASS ricompila CSS" , i parametri URL sull'URL del foglio di stile impediscono a Chrome di notare la modifica.

Risultato desiderato

Ciò significa che solo durante lo sviluppo , volevo rimuovere ?ver=X.X.Xdal normale <link>output del foglio di stile wp_enqueue_style(). In altre parole, volevo il valore predefinito href:

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

essere invece questo:

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

Risposte:


12

wp_enqueue_[style/script]()Comportamento predefinito

Il valore predefinito per l' $versionargomento di wp_enqueue_style()è false. Tuttavia, tale impostazione predefinita significa solo che i fogli di stile hanno invece la versione di WordPress .

Soluzione

Grazie a "Rimuovi versione da WordPress accodato CSS e JS" , ho imparato il fatto non documentato che passare nullcome versione rimuoverà del tutto la versione!

Esempio

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

Avvertimento

Vale la pena sottolineare, come notato nella domanda, che questo dovrebbe probabilmente essere fatto solo durante lo sviluppo (come nel caso specifico). Il parametro versione aiuta con la memorizzazione nella cache (e non con la cache) per i visitatori del sito e quindi probabilmente dovrebbe essere lasciato solo nel 99% dei casi.


8

Grazie per il tuo post, mrwweb.

Ho trovato un'altra soluzione a questo, creando un plugin molto semplice che puoi disattivare quando il sito non è più in fase di sviluppo.

<?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 );

?>

Ho trascorso un paio di minuti cercando di trovare questa soluzione. Ho pensato di condividere un'altra opzione qui invece di creare una nuova domanda / risposta.


non funziona ...
Reggie,

Questa è la risposta corretta Utilizzare questo filtro durante lo sviluppo e rimuoverlo una volta attivo.
dtbaker,

Molto meglio degli stili di dequeue e di coda. Applicabile anche agli script con filtroscript_loader_src
Dharma,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.