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?


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


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!


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


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

1
Nie poleciłbym tego, jestem prawie pewien, że to wszystko pokona buforowanie wersji.
Fabian von Ellerts
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.