Come modificare la versione di .css in WordPress?


13

Come suggerisce il titolo, non sono troppo sicuro di come cambiare la versione di un file .css nel mio tema. Al momento il versioning .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 cercare di rendere la versione 4.6.2 come sopra?


Come stai stampando questo script?
Nathan Powell,

Risposte:


18

Il quarto argomento, $verper wp_enqueue_style()consente di impostare la versione:

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

Secondo i documenti:

$ ver (string | bool | null) (Facoltativo) Stringa che specifica il numero di versione del foglio di stile, se ne ha uno, che viene aggiunto all'URL come stringa di query ai fini del busting della cache. Se la versione è impostata su false, viene automaticamente aggiunto un numero di versione uguale all'attuale versione di WordPress installata. Se impostato su null, non viene aggiunta alcuna versione. Valore di default: false


Grazie per quello - immagino che quello che chiedo sia "come faccio a farlo" - cioè "come posso eseguire quello script per generare una nuova versione"? Spero che abbia un senso ...
Henry,

Aggiorneresti la tua domanda con il codice dove wp_enqueue_style()viene chiamato? WordPress gestisce automaticamente il controllo delle versioni in base alla spiegazione di $verpostato nella mia risposta, quindi suppongo che $ ver sia impostato su false. Se vuoi cambiarlo, cambia l'argomento $ ver in una nuova stringa (non userei 4.6.2 poiché quella convenzione è già usata da WordPress), ma tecnicamente funzionerebbe.
Dave Romsey,

1
Puoi facilmente sostituire qualsiasi cosa lì. Ad esempio, $ver = time();creerebbe una nuova versione ogni volta che accedi alla pagina e la versione sarebbe l'ora.
Nathan Powell,

8

Principalmente la wp_enqueue_style()funzione d' uso del tema all'interno del loro file Functions.php per aggiungere un foglio di stile nell'intestazione. Ecco come scoprire se il tuo tema fa lo stesso.

Apri il tuo wp-content/themes/YOUR_THEME_NAME/functions.phpfile e scopri la riga che sta aggiungendo il foglio di stile, come:

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

O come:

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

Puoi cercare l'ID (ad eccezione della -cssparte) ... se l'ID è: main_style-csscerca solo main-stylenel tuo file Functions.php e probabilmente dovresti trovare 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 il wp_enqueue_style()file di function.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'ultimo tempo modificato del file style.css usando la filemtime()funzione PHP e converte anche il tempo in timestamp usando la time()funzione PHP solo per rendere le cose pulite.

Se non vuoi che la versione cambi dinamicamente ogni volta puoi semplicemente farlo:

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

È praticamente tutto. Pace!


Heads up: è necessario utilizzare get_stylesheet_directory()all'interno di filemtime()quanto restituirà un percorso di sistema.
Half Crazed,

3

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

$ ver (string | bool | null) (Facoltativo) Stringa che specifica il numero di versione del foglio di stile, se ne ha uno, che viene aggiunto all'URL come stringa di query ai fini del busting della cache. Se la versione è impostata su false, viene automaticamente aggiunto un numero di versione uguale all'attuale versione di WordPress installata. Se impostato su null, non viene aggiunta alcuna versione. Valore predefinito: falso

Ma è molto criptico su come funziona effettivamente. Non sono riuscito a ottenere un numero di versione wp_enqueue_styleper attivare un parametro di query come ?ver=1.2.3nel mio foglio di stile. Tuttavia, impostandolo su true consente la versione dichiarata del foglio di stile sul foglio di cache buststile. (continuare a leggere)

Nel tuo style.css devi dare un nome al tuo tema. Questo è richiesto da WP. Tuttavia, altre opzioni come quella versionche fa riferimento anche alla versione booleana di wp_enqueue_style.

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

Ora quando lo cambio per Version: 4.1ottengostyle.css?cache-bust=0.24135995238933283


2

Puoi semplicemente usare time()in un momento di accodamento in stile o script come questo ..

Senza usare la wp_enqueue_style()funzione wordpress

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

Utilizzando la wp_enqueue_style()funzione

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

O

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

1
Non lo consiglierei, sono abbastanza sicuro che sconfiggerà la versione cache tutti insieme.
Fabian von Ellerts,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.