Impossibile ottenere il tema figlio per caricare l'ultima versione di style.css


9

Sto usando un tema Child impostato correttamente. Ma non riesco proprio a far cambiare le modifiche nel tema Child style.css nel sito. Ho provato a svuotare la cache del browser un milione di volte e non funziona!

Ho creato file modello figlio e hanno la precedenza su quelli genitori.

Ho notato che in vista sourse mette un numero di versione alla fine del foglio di stile in questo modo: - style.css? Ver = 3.9.1 anche se non ho creato nessuna versione!

In un altro sito che ho creato non esiste il controllo delle versioni del foglio di stile, quindi perché viene inserito automaticamente quando non lo voglio impostato.

Come posso forzarlo a utilizzare la versione più aggiornata del file Child style.css e non la versione?

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


1
La memorizzazione nella cache del browser è la possibilità più ovvia, ma la memorizzazione nella cache del server può causare lo stesso effetto, così come gli "acceleratori" Web offerti da alcuni ISP e siti indipendenti.
s_ha_dum,

La parte della versione che stai vedendo è solo la versione attuale di WordPress che viene automaticamente aggiunta da WordPress. Non c'è bisogno di preoccuparsi di questo.
Pieter Goosen,

Risposte:


4

In ventiquindici anni, prova a inserire questo nel tema di tuo figlio:

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 ma con la tua versione. Se stai usando un tema genitore diverso, guarda l'etichetta wp_enqueue_style originale per style.css e duplica quell'etichetta all'interno del tema figlio. Dovrai cambiare 1.0.0 con un altro numero ogni volta che apporti una modifica (quindi è meglio per ambienti di produzione in cui non apporti modifiche così spesso).

Per rimuovere la versione da script e stili tutti insieme prova questo:

// remove WP version tag from scripts and styles, best for dev environments
// 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 );
}

4

L'aggiunta della funzione di seguito nel 'funzioni.php' di un tema Child che ho usato con X mi ha aiutato moltissimo 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 rimuovere questo prima di lanciare il vostro sito web in diretta.

Ricorda anche le funzionalità di memorizzazione nella cache del tuo fornitore di servizi di hosting per rendere effettivo questo aggiornamento.

Secondo l'autore :

... è il modo migliore per includere un foglio di stile childtheme in WordPress combinato con filemtime () per forzare i browser a caricare nuove versioni dei file css. Non ho usato filemtime () per lo stile genitore in quanto non lo tocco mai e quindi filemtime () sprecherebbe solo risorse.

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


0

Senza vedere il sito non possiamo aiutare a diagnosticare il problema, ma un evento comune è il tema principale che il css ha la priorità sul css figlio, puoi ignorarlo usando il !importanttag es

#element {
 color:#fff !important;
}

Il tag importante contrassegna tale CSS come priorità rispetto a qualsiasi altro file CSS con la stessa riga di CSS

Facci sapere l'URL e se questo aiuta


Non credo! Il problema è importante, ma ecco il mio url: - peterswebservices.co.uk Anche quando uso l'ispettore su Google Chrome e eseguo il drill-down nel file CSS, mostra una versione precedente senza le ultime modifiche.
user1199360,

0

Ho appena avuto lo stesso problema e si è rivelato essere il mio nuovo host con una sorta di cache attivata per impostazione predefinita. Sono andato al mio pannello di controllo e ho svuotato la cache, quindi ha funzionato correttamente il file style.css giusto.

Il? Ver = 3.9.1 si è rivelato essere un'aringa rossa (almeno per me). Dopo aver svuotato la cache, dice ancora? Ver = 3.9.1, che non si trova da nessuna parte nel mio file CSS, ma funziona tutto bene.


1
La ?ver=3.9.1si aggiunge automaticamente da WordPress. Questa è la versione attuale di WordPress e non ha nulla a che fare con il tuo tema :-)
Pieter Goosen,

0

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

Innanzitutto ho individuato il file che devo modificare:

wp-includes\theme.php

C'è una funzione chiamata get_stylesheet_uri

La mia funzione è simile a questa:

function get_stylesheet_uri() {
    $time = time();
    $stylesheet_dir_uri = get_stylesheet_directory_uri();
    $stylesheet_uri = $stylesheet_dir_uri . '/style.css?v='.$time;
    /**
     * Filter the URI of the current theme stylesheet.
     *
     * @since 1.5.0
     *
     * @param string $stylesheet_uri     Stylesheet URI for the current theme/child theme.
     * @param string $stylesheet_dir_uri Stylesheet directory URI for the current theme/child theme.
     */
    return apply_filters( 'stylesheet_uri', $stylesheet_uri, $stylesheet_dir_uri );
}
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.