Il tema child non sovrascrive il file style.css del tema padre
Ho appena creato un tema child ma ogni modifica che faccio nel file style.css non sovrascrive lo style.css del tema padre - gli altri file funzionano. L'ho fatto in questo modo:
- Creazione di una nuova cartella per il tema child nella directory dei temi
- Copia del file style.css originale al suo interno
- Aggiunta nell'header "Template: orion"
- Selezione e attivazione del mio tema child nelle opzioni dei temi WordPress
E ora quando modifico elementi nel file style.css del tema child... la pagina appare ancora uguale dopo le modifiche. Perché?

È importante notare che il foglio di stile del tema figlio viene caricato dopo gli stili del tema genitore, quindi questo non dovrebbe essere un problema. Penso che ciò che sta accadendo qui sia che stai cercando di modificare stili che non sono presenti nel foglio di stile del tema genitore, ma in altri fogli di stile personalizzati. Se questo è il caso, le tue modifiche non funzioneranno perché molto probabilmente il foglio di stile del tuo tema figlio viene caricato prima dei fogli di stile personalizzati nel tema genitore.
Va inoltre notato che @import
non dovrebbe essere utilizzato per importare il foglio di stile del tema genitore. Il modo corretto è caricarlo utilizzando wp_enqueue_style()
agganciato a wp_enqueue_scripts
Ecco come caricare correttamente e aggiungere il foglio di stile del tema genitore al tema figlio.
add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style' );
function enqueue_parent_theme_style() {
wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
}
Dal codex, questo è il modo corretto in cui dovrebbe apparire il tuo foglio di stile
/*
Theme Name: Twenty Fourteen Child
Theme URI: http://example.com/twenty-fourteen-child/
Description: Tema figlio di Twenty Fourteen
Author: John Doe
Author URI: http://example.com
Template: twentyfourteen
Version: 1.0.0
Tags: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
Text Domain: twenty-fourteen-child
*/
/* =Personalizzazione del tema inizia da qui
-------------------------------------------------------------- */
NOTA
Ho aggiornato il codex con queste informazioni in questo post
MODIFICA
Da un commento qui sotto
Se il tema genitore non utilizza wp_enqueue_style(), come si può caricare il file style.css del tema genitore SENZA modificare i template del tema genitore? Questo punto non è chiaro nel Codex che hai aggiornato. Puoi per favore chiarire con un esempio.
Vorrei iniziare con questo, se sei un autore di temi, per favore, MAI aggiungere fogli di stile o script tramite tag <link>
nell'header del tuo tema. Questo è il modo scorretto di procedere. Carica e registra correttamente questi stili e script tramite l'hook wp_enqueue_scripts
come descritto nel Codex
Ad essere sincero, non mi ero reso conto che ci sono ancora alcuni autori di temi che fanno questo. Penso che il modo migliore per risolvere questo problema sia copiare il file header.php del tema genitore nel tuo tema figlio e rimuovere manualmente (eliminando) gli stili e gli script dall'header.
Puoi poi procedere a caricarli e registrarli come al solito utilizzando wp_enqueue_scripts
come nell'esempio sopra. Ricorda solo, utilizza get_template_directory_uri()
per caricare e registrare script e stili dal tema genitore, e ricorda, l'ordine in cui carichi stili e script è importante qui. Se uno script/stile dipende da un altro, caricarlo dopo quello specifico script/stile

Grazie, sono totalmente d'accordo. Spero che questo aiuterà altri in futuro a fare le cose un po' meglio :-)

se il tema genitore non utilizza wp_enqueue_style() come si può caricare lo style.css del tema genitore SENZA modificare i template del tema genitore?

se il tema genitore non utilizza wp_enqueue_style() come si può accodare il file style.css del genitore senza modificare i template del tema genitore. Come sai, il motivo per cui si crea un tema figlio è proprio per evitare di modificare i template del tema genitore.

@Pieter Goosen: Se il tema genitore non utilizza wp_enqueue_style() come si può accodare il file style.css del tema genitore SENZA modificare i template del tema genitore? Questo punto non è chiaro nel Codex che hai aggiornato. Potresti chiarire con un esempio per favore? Grazie.

@Tara Grazie per aver sollevato questo punto, onestamente non avevo pensato che la gente lo facesse ancora. Vedi le modifiche che ho apportato alla mia risposta

@PieterGoosen Sto utilizzando un tema che ha diverse versioni, ad esempio scura, chiara ecc. Aggiunge un foglio di stile personalizzato per questo. La mia domanda è come sovrascriverlo dal tema figlio?

Assicurati che il tema genitore non utilizzi wp_enqueue_style() nel suo file functions.php.
Se lo fa, puoi anche caricare il foglio di stile del tema figlio dal suo functions.php
add_action( 'wp_enqueue_scripts', 'load_my_child_styles', 20 );
function load_my_child_styles() {
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri().'/style.css', array('twentyfourteen-style'), '1.0.0' );
}
Ecco un esempio di come dovrebbe apparire l'intestazione nel file style.css del tuo tema figlio
/*
Theme Name: Twenty Fourteen Child
Theme URI: http://example.com/twenty-fourteen-child/
Description: Tema figlio di Twenty Fourteen
Author: John Doe
Author URI: http://example.com
Template: twentyfourteen
Version: 1.0.0
Tags: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
Text Domain: twenty-fourteen-child
*/

Ciao, vorrei solo segnalare che la parte @import
non è consigliata, sarebbe meglio accodarla. Vedi ad esempio questa discussione.

@birgire Grazie per l'aggiornamento. Vedi questo post con un metodo alternativo http://wordpress.stackexchange.com/a/167903/9884

Ho trovato questa discussione mentre leggevo il capitolo sui Child Theme nella WordPress Codex.
Ho creato un child theme basato su Simone (che a sua volta è basato su _s underscores) e ho creato un file functions.php con il codice raccomandato:
<?php
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(), array('parent-style') );
}
Tuttavia, utilizzando questo metodo si è creato un problema nel mio child theme. Ho segnalato il problema su GitHub: link. La soluzione è stata rimuovere la costante PHP_INIT_MAX
dalla parte di add_action()
.
Mi chiedo se questo sia un problema relativo a Simone o se riguardi anche altri temi (nel qual caso potrebbe essere un problema nella funzione)...
Grazie!

Avresti dovuto chiedere questo come una domanda. Sfortunatamente questa è la prima volta che vedo questo tuo post. Questo problema è stato segnalato ieri ed è stato risolto ora. Per favore vedi questo post

Anch'io ho avuto lo stesso problema e l'ho risolto modificando i permessi della cartella del child theme e dei file al suo interno impostandoli a 775. Potrebbe non essere il metodo più sicuro, ma nel mio caso ha funzionato. Fammi sapere se funziona anche per te :)
