Come cambiare la versione del file .css in WordPress?
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?

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

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...

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.

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 solomain-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!

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

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