Verhindern Sie den URL-Parameter der Version (? Ver = XXX) für in die Warteschlange gestellte Stile und Skripte

12

Anwendungsfall

Ich habe mit den Dev Tools Workspace-Funktionen von Chrome experimentiert. Es beinhaltet die Möglichkeit, eine Datei direkt in Dev Tools zu bearbeiten und das gespeicherte Stylesheet selbst aktualisieren zu lassen (oder sogar zu kompilieren und dann zu aktualisieren!).

Wie in der StackOverflow-Frage "Chrome-Seite" Generiertes CSS automatisch neu laden "wird nicht neu geladen, wenn SASS CSS neu kompiliert" dokumentiert , verhindern URL-Parameter in der Stylesheet-URL, dass Chrome die Änderung bemerkt.

Gewünschtes Ergebnis

Das bedeutet, dass ich nur während der Entwicklung das ?ver=X.X.Xvon der normalen Stylesheet- <link>Ausgabe von entfernen wollte wp_enqueue_style(). Mit anderen Worten, ich wollte die Standardeinstellung href:

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

um stattdessen dies zu sein:

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

Antworten:

12

wp_enqueue_[style/script]()Standardverhalten

Der Standardwert für das $versionArgument von wp_enqueue_style()ist false. Diese Standardeinstellung bedeutet jedoch nur, dass die Stylesheets stattdessen die WordPress-Version erhalten .

Lösung

Dank "Version aus CSS und JS in WordPress-Warteschlange entfernen" habe ich die undokumentierte Tatsache erfahren, dass durch das Übergeben nullals Version die Version insgesamt entfernt wird!

Beispiel

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

Vorbehaltserinnerung

Wie in der Frage erwähnt, sollte darauf hingewiesen werden, dass dies wahrscheinlich nur während der Entwicklung erfolgen sollte (wie im jeweiligen Anwendungsfall). Der Versionsparameter hilft beim Zwischenspeichern (und nicht beim Zwischenspeichern) für Website-Besucher und sollte daher wahrscheinlich in 99% der Fälle in Ruhe gelassen werden.

mrwweb
quelle
8

Vielen Dank für Ihren Beitrag, mrwweb.

Ich habe eine andere Lösung dafür gefunden, indem ich ein sehr einfaches Plugin erstellt habe, das Sie deaktivieren können, wenn sich die Site nicht mehr in der Entwicklung befindet.

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

?>

Ich habe ein paar Minuten damit verbracht, diese Lösung zu finden. Ich dachte, ich könnte hier eine andere Option teilen, anstatt eine neue Frage / Antwort zu erstellen.

Ricardo Andres
quelle
funktioniert nicht ...
Reggie
Dies ist die richtige Antwort. Verwenden Sie diesen Filter während der Entwicklung und entfernen Sie ihn, sobald er live geht.
dtbaker
Viel besser als Stile für Warteschlangen und Warteschlangen. Gilt auch für Skripte mit Filterscript_loader_src
Dharma