Jak zmienić wersję .css w WordPress?

13

Jak sugeruje tytuł, nie jestem pewien, jak zmienić wersję pliku .css w moim motywie. W tej chwili wersja .css wygląda następująco:

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=4.6.1' type='text/css' media='all' />

Czy jest skrypt, który muszę uruchomić - gdzie powinienem szukać wersji 4.6.2 jak wyżej?

henz
źródło
Jak uzyskać ten skrypt do wydrukowania?
Nathan Powell,

Odpowiedzi:

18

Czwarty argument, $verdla wp_enqueue_style()pozwala ustawić wersję:

wp_enqueue_style( string $handle,
                  string $src = false,
                  array $deps = array(),
                  string|bool|null $ver = false,
                  string $media = 'all' );

Według dokumentów:

$ ver (string | bool | null) (Opcjonalnie) Ciąg określający numer wersji arkusza stylów, jeśli ma taki, który jest dodawany do adresu URL jako ciąg zapytania do celów pomijania pamięci podręcznej. Jeśli wersja ma wartość false, numer wersji jest dodawany automatycznie, tak jak aktualnie zainstalowana wersja WordPress. Jeśli ustawiono wartość null, żadna wersja nie zostanie dodana. Domyślna wartość: false

Dave Romsey
źródło
Dzięki za to - myślę, że pytam „jak to zrobić” - tj. „Jak uruchomić ten skrypt, aby wygenerować nową wersję”? Mam nadzieję, że to ma sens ...
Henry
Czy zaktualizowałbyś swoje pytanie kodem, w którym wp_enqueue_style()się nazywa? WordPress obsługuje wersjonowanie automatycznie na podstawie wyjaśnienia $verzamieszczonego w mojej odpowiedzi, więc zakładam, że $ ver ma wartość false. Jeśli chcesz to zmienić, zmień argument $ ver na nowy ciąg znaków (nie użyłbym 4.6.2, ponieważ ta konwencja jest już używana przez WordPressa), ale technicznie to by działało.
Dave Romsey
1
Możesz łatwo zastąpić wszystko. Na przykład $ver = time();tworzy nową wersję za każdym razem, gdy wchodzisz na stronę, a wersja jest czasem.
Nathan Powell
8

wp_enqueue_style()Funkcja dodawania motywów w pliku funkcji.php służy do dodawania arkusza stylów w nagłówku. Oto, jak dowiedzieć się, czy Twój motyw działa tak samo.

Otwórz wp-content/themes/YOUR_THEME_NAME/functions.phpplik i znajdź linię, która dodaje arkusz stylów, na przykład:

wp_enqueue_style('main_style',  get_stylesheet_directory_uri() . '/style.css');

Lub jak:

wp_enqueue_style( 'twentysixteen-style', get_stylesheet_uri() );

Możesz wyszukać identyfikator (z wyjątkiem -cssczęści) ... jeśli jest to: main_style-csswyszukaj tylko main-stylew pliku functions.php i prawdopodobnie powinieneś znaleźć wiersz kodu, którego szukasz.

Teraz, gdy znalazłeś kod i wiesz, że Twój motyw dodaje ten arkusz stylów, korzystając wp_enqueue_style()z pliku functions.php. Musisz zaktualizować ten kod dla wersji.

$style_ver = filemtime( get_stylesheet_directory() . '/style.css' );
wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', $style_ver );

Jak widać, ten kod pobiera czas ostatniej modyfikacji pliku style.css za pomocą filemtime()funkcji PHP, a także konwertuje czas na znacznik czasu za pomocą time()funkcji PHP, aby wszystko było czyste.

Jeśli nie chcesz, aby wersja zmieniała się dynamicznie za każdym razem, możesz po prostu to zrobić:

wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', '1.5' );

To właściwie wszystko. Pokój!

Waqas szczekał
źródło
Heads up: powinieneś użyć get_stylesheet_directory()wewnątrz, filemtime()ponieważ zwróci ścieżkę systemową.
Half Crazed
3

Nie wyciągnąłem wiele z tych odpowiedzi, więc pomyślałem, że napiszę, co dla mnie zadziałało. Wiem, że kodeks mówi:

$ ver (string | bool | null) (Opcjonalnie) Ciąg określający numer wersji arkusza stylów, jeśli ma taki, który jest dodawany do adresu URL jako ciąg zapytania do celów pomijania pamięci podręcznej. Jeśli wersja ma wartość false, numer wersji jest dodawany automatycznie, tak jak aktualnie zainstalowana wersja WordPress. Jeśli jest ustawiony na null, żadna wersja nie jest dodawana. Wartość domyślna: false

Ale to bardzo tajemnicze, jak to naprawdę działa. Nie mogłem uzyskać numeru wersji, wp_enqueue_styleaby wywołać parametr zapytania, tak jak ?ver=1.2.3w moim arkuszu stylów. Jednak ustawienie na true pozwala zadeklarowaną wersję cache bustarkusza stylów w arkuszu stylów. (Czytaj)

W swoim style.css musisz nazwać swój motyw. Jest to wymagane przez WP. Jednak inne opcje, takie jak versionboolean w wersji wp_enqueue_style, również wskazują.

/******************************************************************
Site Name: MySite.com
Author: @BenRacicot
Version: 4.0 // <- wp_enqueue_style's version number
Stylesheet: Main Stylesheet
******************************************************************/

Teraz, kiedy zmienię to na Version: 4.1, dostajęstyle.css?cache-bust=0.24135995238933283

Ben Racicot
źródło
2

Możesz po prostu użyć time()takiego stylu kolejkowania lub skryptu, jak ten ...

Bez użycia wp_enqueue_style()funkcji wordpress

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=<?php echo time(); ?>' type='text/css' media='all' />

Korzystanie z wp_enqueue_style()funkcji

wp_enqueue_style('style_sheet_name', get_stylesheet_directory_uri() . '/custom_style.css', '', time());

LUB

wp_enqueue_style('style_sheet_name', get_stylesheet_uri() . '/custom_style.css', '', time());
Pan HK
źródło
1
Nie poleciłbym tego, jestem prawie pewien, że to wszystko pokona buforowanie wersji.
Fabian von Ellerts