Come cambiare la versione del file .css in WordPress?

29 nov 2016, 04:45:18
Visualizzazioni: 55.6K
Voti: 15

Come suggerisce il titolo, non sono sicuro di come cambiare la versione di un file .css nel mio tema. Al momento il versionamento del .css è così:

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

C'è uno script che devo eseguire - dove dovrei guardare per cambiare la versione in 4.6.2 come nell'esempio sopra?

css
1
Commenti

Come fai a far stampare questo script?

Nathan Powell Nathan Powell
29 nov 2016 04:51:44
Tutte le risposte alla domanda 4
3
19

Il quarto argomento, $ver per wp_enqueue_style(), ti permette di impostare la versione:

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

Secondo la documentazione:

$ver (string|bool|null) (Opzionale) Stringa che specifica il numero di versione del foglio di stile, se presente, che viene aggiunta all'URL come query string per evitare problemi di cache. Se la versione è impostata su false, viene automaticamente aggiunto un numero di versione uguale alla versione attualmente installata di WordPress. Se impostato su null, nessuna versione viene aggiunta. Valore predefinito: false

29 nov 2016 04:53:32
Commenti

Grazie per questo - credo che quello che sto chiedendo sia 'come faccio a farlo' - cioè 'come eseguo quello script per generare una nuova versione'? Spero abbia senso...

Henry Henry
29 nov 2016 04:55:01

Potresti aggiornare la tua domanda con il codice dove viene chiamato wp_enqueue_style()? WordPress gestisce il versionamento automaticamente in base alla spiegazione di $ver postata nella mia risposta, quindi presumo che $ver sia impostato su false. Se vuoi cambiarlo, modifica l'argomento $ver con una nuova stringa (non userei 4.6.2 dato che quella convenzione è già usata da WordPress), ma tecnicamente funzionerebbe.

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

Puoi facilmente sostituire qualsiasi cosa lì. Ad esempio $ver = time(); creerebbe una nuova versione ogni volta che carichi la pagina, e la versione sarebbe il tempo.

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

La maggior parte dei temi utilizza la funzione wp_enqueue_style() all'interno del loro file functions.php per aggiungere il foglio di stile nell'header. Ecco come scoprire se il tuo tema fa lo stesso.

Apri il tuo file wp-content/themes/NOME_DEL_TUO_TEMA/functions.php e cerca la riga che aggiunge il foglio di stile, come:

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

Oppure come:

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

Puoi cercare l'ID (esclusa la parte -css)... se l'ID è: main_style-css cerca solo main-style nel tuo file functions.php, e probabilmente troverai la riga di codice che stavi cercando.

Ora che hai trovato il codice e sai che il tuo tema aggiunge questo foglio di stile usando wp_enqueue_style() nel file functions.php, devi aggiornare questo codice per la versione.

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

Come puoi vedere, questo codice ottiene l'ultima ora di modifica del file style.css usando la funzione PHP filemtime() e converte anche l'ora in timestamp usando la funzione PHP time() solo per mantenere le cose pulite.

Se non vuoi che la versione cambi dinamicamente ogni volta, puoi semplicemente fare così:

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

Questo è tutto. Pace!

30 nov 2016 23:38:05
Commenti

Attenzione: dovresti usare get_stylesheet_directory() all'interno di filemtime() poiché restituirà un percorso di sistema.

Rob W Rob W
14 lug 2017 01:17:26
0

Non ho ricavato molto da queste risposte, quindi ho pensato di scrivere ciò che ha funzionato per me. So che il codex dice:

$ver (string|bool|null) (Opzionale) Stringa che specifica la versione del foglio di stile, se presente, che viene aggiunta all'URL come query string per evitare la cache. Se la versione è impostata su false, viene aggiunto automaticamente un numero di versione uguale alla versione corrente di WordPress installata. Se impostato su null, non viene aggiunta alcuna versione. Valore predefinito: false

Ma è molto criptico su come funziona effettivamente. Non sono riuscito a far sì che un numero di versione in wp_enqueue_style generasse un parametro di query come ?ver=1.2.3 sul mio foglio di stile. Tuttavia, impostandolo su true consente alla versione dichiarata nel foglio di stile di invalidare la cache (cache bust) del foglio di stile. (continua a leggere)

All'interno del tuo style.css devi nominare il tuo tema. Questo è richiesto da WP. Tuttavia altre opzioni come version sono ciò a cui fa riferimento il parametro booleano version di wp_enqueue_style.

/******************************************************************
Nome Sito: MySite.com
Autore: @BenRacicot
Versione: 4.0 // <- numero di versione di wp_enqueue_style
Foglio di Stile: Foglio di Stile Principale
******************************************************************/

Ora quando cambio questo in Versione: 4.1 ottengo style.css?cache-bust=0.24135995238933283

31 lug 2017 17:16:06
1

Puoi semplicemente usare time() al momento di caricare uno stile o script in questo modo...

Senza utilizzare la funzione WordPress wp_enqueue_style()

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

Utilizzando la funzione wp_enqueue_style()

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

OPPURE

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

Non lo consiglierei, sono abbastanza sicuro che eliminerà completamente la memorizzazione nella cache delle versioni.

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