Cum să schimbi versiunea fișierului .css în WordPress?

29 nov. 2016, 04:45:18
Vizualizări: 55.6K
Voturi: 15

După cum sugerează titlul, nu sunt sigur cum să schimb versiunea unui fișier .css în tema mea. În prezent, versionarea .css arată astfel:

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

Există vreun script pe care trebuie să-l rulez - unde ar trebui să caut pentru a face versiunea 4.6.2 ca în exemplul de mai sus?

css
1
Comentarii

Cum obțineți acest script să imprimeze?

Nathan Powell Nathan Powell
29 nov. 2016 04:51:44
Toate răspunsurile la întrebare 4
3
19

Al patrulea argument, $ver pentru wp_enqueue_style() vă permite să setați versiunea:

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

Conform documentației:

$ver (string|bool|null) (Opțional) Șir care specifică numărul versiunii fișierului de stil, dacă există, care este adăugat la URL ca parametru de interogare pentru a evita problema cache-ului. Dacă versiunea este setată la false, un număr de versiune este adăugat automat, egal cu versiunea curentă instalată de WordPress. Dacă este setat la null, nu se adaugă nicio versiune. Valoare implicită: false

29 nov. 2016 04:53:32
Comentarii

Mulțumesc pentru asta - cred că ceea ce încerc să întreb este 'cum fac asta' - adică 'cum rulez acel script pentru a genera o versiune nouă'? Sper că are sens...

Henry Henry
29 nov. 2016 04:55:01

Ai putea să actualizezi întrebarea ta cu codul unde este apelată funcția wp_enqueue_style()? WordPress gestionează versiunea automat conform explicației despre $ver postate în răspunsul meu, așa că presupun că $ver este setat pe false. Dacă vrei să îl schimbi, modifică argumentul $ver într-un șir nou (nu aș folosi 4.6.2 deoarece această convenție este deja folosită de WordPress), dar tehnic ar funcționa.

Dave Romsey Dave Romsey
29 nov. 2016 04:58:39

Poți înlocui cu ușurință orice acolo. De exemplu $ver = time(); ar crea o versiune nouă de fiecare dată când accesezi pagina, iar versiunea ar fi timpul curent.

Nathan Powell Nathan Powell
29 nov. 2016 04:59:55
1

Majoritatea temelor folosesc funcția wp_enqueue_style() în fișierul functions.php pentru a adăuga fișierul de stil în header. Iată cum poți verifica dacă tema ta face același lucru.

Deschide fișierul wp-content/themes/NUMELE_TEMEI/functions.php și caută linia care adaugă fișierul de stil, precum:

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

Sau precum:

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

Poți căuta după ID (excluzând partea -css)... dacă ID-ul este: main_style-css, caută doar main_style în fișierul functions.php și probabil vei găsi linia de cod pe care o cauți.

Acum că ai găsit codul și știi că tema ta adaugă acest fișier de stil folosind wp_enqueue_style() în fișierul functions.php, trebuie să actualizezi acest cod pentru versiune.

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

După cum vezi, acest cod obține data ultimei modificări a fișierului style.css folosind funcția PHP filemtime() și convertește timpul în timestamp folosind funcția PHP time() pentru a menține lucrurile organizate.

Dacă nu dorești ca versiunea să se actualizeze dinamic de fiecare dată, poți face simplu asta:

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

Asta e tot. Pace!

30 nov. 2016 23:38:05
Comentarii

Atenție: ar trebui să folosești get_stylesheet_directory() în interiorul funcției filemtime() deoarece aceasta va returna o cale de sistem.

Rob W Rob W
14 iul. 2017 01:17:26
0

Nu am înțeles prea multe din aceste răspunsuri, așa că am decis să scriu ce a funcționat pentru mine. Știu că codex-ul spune:

$ver (string|bool|null) (Opțional) Șir care specifică versiunea fișierului de stil, dacă are una, care este adăugată la URL ca parametru de interogare pentru a evita cache-ul. Dacă versiunea este setată pe false, un număr de versiune este adăugat automat, egal cu versiunea curentă instalată de WordPress. Dacă este setat pe null, nicio versiune nu este adăugată. Valoare implicită: false

Dar este foarte criptic în legătură cu modul în care funcționează de fapt. Nu am reușit să obțin un număr de versiune în wp_enqueue_style care să declanșeze un parametru de interogare precum ?ver=1.2.3 pe fișierul meu de stil. Totuși, setându-l pe true permite versiunii declarate în fișierul de stil să evite cache-ul (continuă mai departe).

În fișierul tău style.css trebuie să numești tema ta. Acest lucru este cerut de WP. Totuși, alte opțiuni precum version sunt cele la care se referă versiunea booleană din wp_enqueue_style.

/******************************************************************
Site Name: MySite.com
Author: @BenRacicot
Version: 4.0 // <- numărul de versiune din wp_enqueue_style
Stylesheet: Fișierul principal de stiluri
******************************************************************/

Acum, când schimb asta în Version: 4.1 obțin style.css?cache-bust=0.24135995238933283

31 iul. 2017 17:16:06
1

Puteți folosi simplu time() în momentul încărcării stilului sau scriptului astfel...

Fără a utiliza funcția WordPress wp_enqueue_style()

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

Folosind funcția wp_enqueue_style()

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

SAU

wp_enqueue_style('style_sheet_name', get_stylesheet_uri() . '/custom_style.css', '', time());
8 feb. 2018 08:52:53
Comentarii

Nu aș recomanda acest lucru, sunt sigur că va anula complet cache-ul de versiune.

Fabian von Ellerts Fabian von Ellerts
28 mar. 2019 10:33:05