Rimuovere il parametro di versione URL (?ver=X.X.X) da stili e script enqueued
Caso d'uso
Ho sperimentato con le funzionalità Workspace di Chrome Dev Tools. Include la possibilità di modificare un file direttamente in Dev Tools e fare in modo che il foglio di stile salvato si aggiorni automaticamente (o addirittura si ricompili e poi si aggiorni!).
Tuttavia, come documentato nella domanda StackOverflow "Auto-Reload Generated CSS" di Chrome non ricarica la pagina quando SASS ricompila il CSS", i parametri URL nell'indirizzo del foglio di stile impediscono a Chrome di rilevare le modifiche.
Risultato desiderato
Ciò significa che solo durante lo sviluppo, volevo rimuovere il ?ver=X.X.X
dal normale <link>
del foglio di stile generato da wp_enqueue_style()
. In altre parole, volevo che l'href
predefinito:
http://localhost/mysite/wp-includes/style.css?ver=4.1.1
venisse invece mostrato così:
http://localhost/mysite/wp-includes/style.css

Comportamento predefinito di wp_enqueue_[style/script]()
Il valore predefinito per l'argomento $version
di wp_enqueue_style()
è false
. Tuttavia, questo valore predefinito significa semplicemente che ai fogli di stile viene assegnata la versione di WordPress invece.
Soluzione
Grazie a "Rimuovi la versione dai CSS e JS caricati in WordPress", ho scoperto il fatto non documentato che passando null
come versione si rimuove completamente la versione!
Esempio
wp_enqueue_style( 'wpse-styles', get_template_directory_uri() . '/style.css', array(), null );
Promemoria Avvertenza
Vale la pena sottolineare, come notato nella domanda, che questo probabilmente dovrebbe essere fatto solo durante lo sviluppo (come nel caso d'uso specifico). Il parametro della versione aiuta con la cache (e il non caching) per i visitatori del sito e quindi probabilmente dovrebbe essere lasciato invariato nel 99% dei casi.

Grazie per il tuo post, mrwweb.
Ho trovato un'altra soluzione a questo problema, creando un plugin molto semplice che puoi disattivare quando il sito non è più in fase di sviluppo.
<?php
/*
Plugin name: Rimuovi Versione WP nei Fogli di Stile/Script
*/
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 impiegato un paio di minuti per trovare questa soluzione. Ho pensato di condividere un'altra opzione qui invece di creare una nuova Domanda/Risposta.

Questa è la risposta corretta. Usa questo filtro durante lo sviluppo e rimuovilo una volta online.

Molto meglio di dequeue e queue styles. Applicabile anche agli script con il filtro script_loader_src

basandosi sul suggerimento di @ricardo-andres, un codice applicabile in qualsiasi momento, particolarmente utile per risorse su CDN (come jQuery) - eliminiamo questo tag di query dalle risorse che hanno già una versione inclusa nel loro nome
function clean_src( $src, $handle ) {
if (preg_match('_\d[^\?/]*\?_', $src))
$src = remove_query_arg( 'ver', $src );
return $src;
}
add_filter( 'style_loader_src', 'clean_src', 10, 2 );
add_filter( 'script_loader_src', 'clean_src', 10, 2 );
