come aggiungere la versione di style.css in wordpress


12

Come aggiungere la versione di style.cssWordPress come sotto posso fare in Joomla.

<link rel="stylesheet" href="/templates/example/css/style.css?v=1.2">

so che style.csscaricherà dinamicamente. per favore aiutami a come farlo.


Ecco un plugin wordpress.org/plugins/wp-css-version-history che aggiungerà automaticamente un numero di versione nel foglio di stile. Crea un nuovo foglio di stile che viene caricato per ultimo. Non è necessario cancellare la cache per vedere le modifiche. Utilizza l'editor CSS incorporato di Wordpress e il blocco dei file utente per la collaborazione di gruppo.
Brian Holzberger,

Risposte:


16

Il numero di versione è un parametro di wp_enqueue_style().

Secondo il Codice, qui ci sono tutti i parametri che wp_enqueue_styleaccetta.

wp_enqueue_style( $handle, $src, $deps, $ver, $media );

Quindi, ad esempio, per caricare un foglio di stile con un numero di versione devi fare quanto segue:

function wpa_90820() {
    wp_enqueue_style('my-styles', get_stylesheet_directory_uri() .'/my-styles.css', array(), '1.0' );       
}

add_action('wp_enqueue_scripts', 'wpa_90820');

quando lo faccio, anche il vecchio style.css si sta caricando. Come rimuoverlo?
Toretto,

@VinodDalvi cosa intendi per handle. non lo so, sono nuovo di WordPress per favore, per favore.
Toretto,

1
@Toretto O il tuo tema lo sta hardcodificando in header.php o il tuo tema lo sta accodando con un handle diverso (il primo parametro). La soluzione dipende anche se stai modificando direttamente le funzioni.php del tuo tema o se hai creato un tema figlio.
Helgatheviking

@Toretto, $ handle è mostrato nella mia risposta e descritto anche nel link che ho fornito alla pagina del Codex per wp_enqueue_stylefare i compiti.
Helgatheviking

1
@Toretto Se il tuo tema sta usando wp_enqueue_style()per caricare il foglio di stile in questione, allora handle è il primo parametro. Se il tuo tema sta codificando il foglio di stile in header.php, non avrà un handle.
Helgatheviking

5

Invece di cablare la versione, potresti trovare meglio in alcuni casi la versione dinamica del tuo foglio di stile, quindi ogni volta che lo cambi, cambia automaticamente e aggiorna immediatamente la cache del browser senza dover modificare le tue funzioni.php più e più volte.

È possibile utilizzare filemtime () per farlo. Ecco come farlo in uno stile figlio che fa riferimento a parent_style

    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ), filemtime( get_stylesheet_directory() . '/style.css' )  );

Nel corso del tempo, sono arrivato a preferire le versioni dei temi, ma è una buona idea usare filemtime () qui, se non si ha una pratica di controllo delle versioni dei temi.
jgangso,

3

Se sei uno sviluppatore di temi, potresti voler forzare il ricaricamento delle tue risorse quando invii una nuova versione.

Quindi il versioning di un tema è fatto in style.css

/*
    Theme Name: Your Theme Name
    Version: 1.0.2
*/

Nella parte superiore del tuo functions.php:

$theme = wp_get_theme();
define('THEME_VERSION', $theme->Version); //gets version written in your style.css

Successivamente, quando accoderai CSS o JS, usa THEME_VERSIONcome quarto argomento:

function theme_styles()
{
    wp_enqueue_style('main', get_template_directory_uri().'/css/main.css', [], THEME_VERSION, 'all');
}
add_action('wp_enqueue_scripts', 'theme_styles'); 

Verrà emesso sulla pagina:

.../your-theme-name/css/main.css?ver=1.0.2 

È utile quando hai più risorse di cui occuparti e non vuoi cambiarle manualmente.


2

È possibile ottenere ciò utilizzando uno dei seguenti modi:

1) Aggiungi il seguente tag nel file header.php del tema.

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>'?v=1.2" type="text/css" media="all" />

2) Aggiungi il seguente codice nel file Functions.php del tema.

function theme_styles()  
{ 
  // Register the style like this for a theme:  
  // (First the unique name for the style (custom-style) then the src, 
  // then dependencies and ver no. and media type)
  wp_enqueue_style( 'style-css', get_template_directory_uri() . '/style.css', array(), '1.2', 'all' );
}
add_action('wp_enqueue_scripts', 'theme_styles');

Per maggiori informazioni vedi questa pagina.


quando lo faccio, anche il vecchio style.css si sta caricando. Come rimuoverlo?
Toretto,

Qual è l'handle di old style.css?
Vinod Dalvi,

se non riesci a trovare la maniglia, copia e incolla l'intero URL style.css qui .. lo prenderò da lì ...
Vinod Dalvi

Oppure puoi dirmi qual è il nome del tuo tema o il nome della cartella del tema?
Vinod Dalvi,

1
Benvenuto .... :)
Vinod Dalvi,

1

il modo migliore per caricare css nel tuo tema wordpress è il seguente codice nel tuo file Functions.php:

function theme_styles()  
{ 
  global $ver_num; // define global variable for the version number
  $ver_num = mt_rand() // on each call/load of the style the $ver_num will get different value
  wp_enqueue_style( 'style-css', get_template_directory_uri() . '/style.css', array(), $ver_num, 'all' );
}
add_action('wp_enqueue_scripts', 'theme_styles');

Questo è il modo giusto per caricare gli stili nel tuo tema ed è anche il migliore per scopi di stadiazione / test perché ogni aggiornamento fornirà la versione aggiornata dello stile.

Se vuoi evitare il caricamento in 1 ° modo, puoi usare questa versione abbreviata e inserire la seguente riga nel tuo file header.php e otterrai lo stesso risultato:

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); echo '?ver=' . filemtime( get_stylesheet_directory() . '/style.css'); ?>" type="text/css" media="screen, projection" />

Saluti


1

Prova questo:

Aggiungi questo a Functions.php

function autoVer($filename){
    $url = get_template_directory_uri() . $filename;
    $file = get_template_directory() . $filename;
    if ( file_exists($file)) {
        return $url . '?v=' .md5(date("FLdHis", filectime($file)) . filesize($file));
    }
    clearstatcache();
}

Aggiungi questo all'intestazione o piè di pagina -> autoVer ('/ js / main.js');


1

Contrariamente ai metodi presentati finora, credo che sia meglio usare il numero di versione che appare nella parte superiore del tuo file style.css:

// style.css
/**
Theme Name: My theme
...
Version: 1.2.3
...
**/

Per usare la versione del tema nel tuo CSS, aggiungi quanto segue al tuo script Functions.php (o equivalente):

<?php

wp_enqueue_style(
    'my-theme',
    get_stylesheet_directory_uri() . '/style.css',
    [],
    wp_get_theme()->get('Version')
);

Ciò significa che, dopo aver modificato il tuo file style.css, tutto ciò che devi fare è cambiare il numero di versione nella parte superiore dello stesso file per vedere le modifiche nel frontend.

Se esamini la sezione head dell'HTML del tema vedrai quanto segue:

<link rel='stylesheet'
    id='my-theme-css'
    href='... style.css?ver=1.2.3'
    type='text/css'
    media='all'
/>

-1

Questo è un modo piuttosto semplice per ottenere il numero di versione chiamando la funzione bloginfo($show) due volte. Innanzitutto per il foglio di stile e in secondo luogo per il numero di versione.

<link rel="stylesheet" id="style-css" href="<?php bloginfo('stylesheet_url'); ?>?ver=<?php bloginfo('version'); ?>" type="text/css" media="all" />

Questo è tutto quello che c'è da fare. Spero che aiuti o sia utile. Puoi esaminare tutti i parametri disponibili e vedere cosa puoi emettere con la bloginfo()funzione.

Ignora il mio commento poiché @Ravs ha segnalato il mio errore relativo al parametro 'version' per la funzione bloginfo (). In effetti stampa il numero di versione di Wordpress.


Penso che non sia una risposta corretta perché <? Php bloginfo ('versione')?> Ti dà la versione attuale di wordpress mentre la domanda riguarda la versione di style.css aggiunta non la versione di wordpress.
Ravinder Kumar,
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.