Zapobiegaj parametrowi URL wersji (? Ver = XXX) w kolejkowanych stylach i skryptach

12

Przypadek użycia

Eksperymentowałem z funkcjami Chrome Tools Workspace. Obejmuje to możliwość edycji pliku bezpośrednio w Narzędziach deweloperskich i odświeżenia zapisanego arkusza stylów (lub nawet skompilowania, a następnie odświeżenia!).

Jednak, jak udokumentowano w pytaniu StackOverflow, „Strona Chrome„ Auto-Reload Generated CSS ”nie ładuje się ponownie, gdy SASS ponownie skompiluje CSS” , parametry adresu URL w arkuszu stylów uniemożliwiają Chrome zauważenie zmiany.

Pożądany wynik

Oznacza to, że tylko podczas programowania chciałem usunąć ?ver=X.X.Xz normalnego <link>wyjścia arkusza stylów przez wp_enqueue_style(). Innymi słowy, chciałem domyślne href:

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

zamiast tego:

http://localhost/mysite/wp-includes/style.css
mrwweb
źródło

Odpowiedzi:

12

Domyślne wp_enqueue_[style/script]()zachowanie

Domyślna wartość $versionargumentu z wp_enqueue_style()Is false. Jednak to ustawienie domyślne oznacza po prostu, że arkusze stylów otrzymują wersję WordPress .

Rozwiązanie

Dzięki „Usuń wersję z kolejki CSS i JS WordPressa” nauczyłem się nieudokumentowanego faktu, że przekazanie nulljako wersji całkowicie usunie wersję!

Przykład

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

Przypomnienie o zastrzeżeniach

Warto zauważyć, jak zauważono w pytaniu, że prawdopodobnie należy tego dokonać tylko podczas programowania (jak w konkretnym przypadku użycia). Parametr wersji pomaga w buforowaniu (a nie buforowaniu) dla odwiedzających witrynę, dlatego prawdopodobnie należy pozostawić go w spokoju w 99% przypadków.

mrwweb
źródło
8

Dziękuję za twój post, mrwweb.

Znalazłem inne rozwiązanie tego problemu, tworząc bardzo prostą wtyczkę, którą można dezaktywować, gdy witryna nie jest już rozwijana.

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

?>

Spędziłem kilka minut próbując znaleźć to rozwiązanie. Pomyślałem, że mogę udostępnić tutaj inną opcję zamiast tworzenia nowego pytania / odpowiedzi.

Ricardo Andres
źródło
nie działa ...
reggie
To jest poprawna odpowiedź. Użyj tego filtra podczas opracowywania i usuń go po uruchomieniu.
dtbaker
O wiele lepsze niż style kolejkowania i kolejkowania. Dotyczy również skryptów z filtremscript_loader_src
Dharma