Non riesco a far caricare la versione più recente di style.css nel Child Theme

20 mag 2014, 15:54:33
Visualizzazioni: 18.6K
Voti: 11

Sto usando un Child Theme configurato correttamente. Ma non riesco proprio a far sì che le modifiche apportate al file style.css del Child Theme si riflettano sul sito. Ho provato a svuotare la cache del browser milioni di volte ma non funziona!

Ho creato i file template del child e sovrascrivono quelli del parent senza problemi.

Ho notato che nel codice sorgente aggiunge un numero di versione alla fine del foglio di stile in questo modo:- style.css?ver=3.9.1 anche se non ho creato alcuna versione!

In un altro sito che ho creato non c'è alcuna numerazione di versione per il foglio di stile, quindi perché viene aggiunta automaticamente quando non voglio che sia impostata?

Come posso forzare l'uso della versione più aggiornata del file style.css del Child senza numerazione di versione?

Ecco l'URL del mio sito:- http://www.peterswebservices.co.uk/

3
Commenti

La cache del browser è la possibilità più ovvia, ma anche la cache del server può causare lo stesso effetto, così come gli "acceleratori" web che alcuni ISP e siti indipendenti offrono.

s_ha_dum s_ha_dum
20 mag 2014 15:57:50

La parte della versione che vedi è semplicemente l'attuale versione di WordPress che viene aggiunta automaticamente da WordPress. Non c'è bisogno di preoccuparsene.

Pieter Goosen Pieter Goosen
20 mag 2014 16:00:56

@PieterGoosen Il problema dell'OP riguarda questo parametro della versione che impedisce il caricamento dell'attuale CSS. Molto preoccupante. Quindi perché è lì e come possiamo rimuoverlo?

Ralf Ralf
30 ago 2024 17:35:03
Tutte le risposte alla domanda 5
1

In twentyfourteen, prova a inserire questo nel tuo child theme:

function add_require_scripts_files() {
 wp_enqueue_style('twentyfourteen-style', get_stylesheet_directory_uri().'/style.css', array(), '1.0.0', "all");        
}
add_action( 'wp_enqueue_scripts', 'add_require_scripts_files' );

Questo sostituirà il foglio di stile originale con la tua versione. Se stai usando un parent theme diverso, controlla l'etichetta originale wp_enqueue_style per style.css e duplica quell'etichetta nel tuo child theme. Dovrai cambiare 1.0.0 con un altro numero ogni volta che apporti una modifica (quindi è meglio per ambienti di produzione dove non fai cambiamenti così spesso).

Per rimuovere completamente la versione dagli script e dagli stili prova questo:

// rimuove il tag versione WP da script e stili, ottimo per ambienti di sviluppo
// by Adam Harley https://wordpress.org/support/topic/enqueueregister-script-remove-version
add_filter( 'script_loader_src', 'remove_src_version' );
add_filter( 'style_loader_src', 'remove_src_version' );
function remove_src_version ( $src ) {
  global $wp_version;
  $version_str = '?ver='.$wp_version;
  $version_str_offset = strlen( $src ) - strlen( $version_str );
  if( substr( $src, $version_str_offset ) == $version_str )
    return substr( $src, 0, $version_str_offset );
}
27 set 2014 05:46:23
Commenti

Questo codice blocca il mio sito. Forse è solo per le versioni più vecchie di WP?

Ralf Ralf
30 ago 2024 17:37:11
0

Aggiungere la funzione qui sotto nel file 'functions.php' di un tema child che ho utilizzato con X mi ha aiutato molto in una situazione simile.

add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_styles', PHP_INT_MAX);
function enqueue_child_theme_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_uri(), NULL, filemtime( get_stylesheet_directory() . '/style.css' ) );
}

Basta non dimenticare di rimuoverlo prima di mettere online il tuo sito web.

Tieni anche presente le funzionalità di caching del tuo provider di hosting per far sì che questo aggiornamento abbia effetto.

Secondo l'autore:

... è il modo migliore per includere un foglio di stile del tema child in WordPress combinato con filemtime() per forzare i browser a caricare nuove versioni dei file css. Non ho usato filemtime() per lo stile del parent perché non lo modifico mai e quindi filemtime() sprecherebbe solo risorse.

Fonte: Commento di Daniel del 22 ottobre 2014 all'articolo Prevenire la cache CSS: https://css-tricks.com/snippets/wordpress/prevent-css-caching/#comment-1586141

28 ott 2015 19:35:38
1

Senza vedere il sito non possiamo aiutare a diagnosticare il problema, ma un caso comune è che il CSS del tema principale abbia la priorità sul CSS del child theme. Puoi sovrascriverlo utilizzando il tag !important, ad esempio:

#element {
 color:#fff !important;
}

Il tag important indica che quel CSS ha la priorità su qualsiasi altro file CSS con la stessa regola

Facci sapere l'URL e se questo è stato utile

20 mag 2014 15:59:22
Commenti

Non penso che !important sia il problema, ma ecco il mio URL:-http://www.peterswebservices.co.uk/ Inoltre quando uso l'ispettore su Google Chrome e analizzo il file css, mostra una versione precedente senza le ultime modifiche.

user1199360 user1199360
20 mag 2014 16:06:50
1

Ho avuto lo stesso problema e si è rivelato essere il mio nuovo host che aveva una qualche forma di cache attivata di default. Sono andato nel pannello di controllo e ho svuotato la cache, dopodiché ha servito correttamente il file style.css giusto.

Il parametro ?ver=3.9.1 si è rivelato essere una falsa pista (almeno nel mio caso). Dopo aver svuotato la cache, continua a mostrare ?ver=3.9.1, che non si trova da nessuna parte nel mio file css, ma tutto funziona correttamente.

11 lug 2014 09:16:42
Commenti

Il ?ver=3.9.1 viene aggiunto automaticamente da WordPress. Questa è la versione corrente di WordPress e non ha nulla a che fare con il tuo tema :-)

Pieter Goosen Pieter Goosen
11 lug 2014 09:52:11
0

Ho avuto lo stesso problema e l'ho risolto in un modo diverso da quello predefinito.

Per prima cosa ho individuato il file che dovevo modificare:

wp-includes\theme.php

C'è una funzione chiamata get_stylesheet_uri

La mia funzione ora appare così:

function get_stylesheet_uri() {
    $time = time();
    $stylesheet_dir_uri = get_stylesheet_directory_uri();
    $stylesheet_uri = $stylesheet_dir_uri . '/style.css?v='.$time;
    /**
     * Filtro l'URI del foglio di stile del tema corrente.
     *
     * @since 1.5.0
     *
     * @param string $stylesheet_uri     URI del foglio di stile per il tema/child theme corrente.
     * @param string $stylesheet_dir_uri URI della directory del foglio di stile per il tema/child theme corrente.
     */
    return apply_filters( 'stylesheet_uri', $stylesheet_uri, $stylesheet_dir_uri );
}
7 set 2016 17:18:11