20 Tema child
I temi Child (o temi figlio), consentono di creare temi che si basano su dei temi genitore (parent theme) usati come template, modificando parti del tema di partenza per adattarli alle proprie esigenze.
Il tema Child si trova in una propria cartella, così come tutti i file associati; pertanto, quando caricate la nuova versione del tema originale sulla quale avete basato il vostro sito, sovrascriverete solo i file di quel tema e non il tema Child che contiene tutte le modifiche e le modifiche apportate non andranno perse in un futuro aggiornamento del tema.
Il tema genitore deve essere presente nella cartella wp-content/themes/, perché altrimenti non potete utilizzarne i file, e il tema Child deve trovarsi in una propria cartella, come un tema regolare, sempre nello stesso percorso.
Creiamo ora il file style.css nella cartella del tema child creata. Ogni volta che viene chiamato un template file, WordPress lo cercherà all’interno del tema Child; se non lo trova, caricherà quello presente nel tema genitore originale. Ecco come si presenta l’intestazione del file style.css di un tema child:
/* Theme Name: Your Theme Name Theme URI: http://your-theme-homepage.com Description: Oh what a lovely description of your theme you'll put here! Author: Your Name Author URI: http://your-website.com Version: A version number */
Se volete che il foglio di stile dichiari che questo è un tema Child, dovrete aggiungere una riga Template, che è il nome della cartella in cui risiede il tema genitore:
Template: il nome della cartella del tema genitore
Ora abbiamo un nuovo foglio di stile che sovrascrive quello del tema principale, possiamo riscriverlo o importarlo per fare delle integrazioni, tramite il tag @import, per farlo aggiungiamo la seguente riga dopo l’intestazione nel file style.css:
@import url("../tema-genitore/style.css");
Dopo aver inserito il tag @import, è possibile inserire tutte le regole CSS che si vuole, esse verranno lette successivamente alle regole dello style.css del tema genitore appena importato. Questo è il motivo per cui l’importazione va inserita nel punto più alto possibile.
Ecco come si presenta il file style.css del tema child:
/* Theme Name: Your Theme Name Theme URI: http://your-theme-homepage.com Description: Oh what a lovely description of your theme you'll put here! Author: Your Name Author URI: http://your-website.com Version: A version number Template: nome-tema-genitore */ @import url("../notes-blog/style.css"); div#content { font-family: Georgia, Times New Roman, serif; } ul.sidebar { color: #333; } regole css a piacere
Tutti i template file possono essere inseriti nella cartella del child per essere modificati a piacimento, se non si devono apportare modifiche ai template file, basta semplicemente non inserirli nella cartella del child.
Esiste un’eccezione a questa regola: il file functions.php del tema genitore verrà caricato anche se esiste un file functions.php nella cartella dei temi Child, ma se dovessero esserci problemi, il file functions.php del tema Child sarà in prima posizione. Si tratta di un’ottima opportunità, perché significa che potete utilizzare il file functions.php del tema Child, che ha la precedenza su quello del tema genitore, per modificare qualsiasi caratteristica e funzione desiderate dal tema genitore. In altre parole, se volete effettuare un’operazione leggermente diversa nel tema Child, potete ignorare le parti di functions.php del tema genitore semplicemente modificando il codice particolare che vi infastidisce nel file functions.php del tema Child, lasciando il resto del file functions.php del tema genitore pienamente funzionale.
Il grande vantaggio di questo processo è che solo le modifiche entrano nel tema Child, così che ogni volta che il tema genitore originale viene aggiornato possiate aggiornare anche il vostro, sapendo che le modifiche rimarranno intatte nel tema Child. Ancora meglio, il tema Child raccoglierà i vantaggi dell’aggiornamento del tema genitore, pur rimanendo invariato.
Per esempio, supponete di volere un aspetto diverso per gli archivi delle categorie: create il template file category.php nel vostro tema Child, e questo verrà utilizzato al posto del file category.php del tema genitore.
Non è solo questa prerogativa di overriding che rende i temi Child così eccezionali. Immaginate di volere che solo una categoria specifica abbia un aspetto diverso. Aggiungendo category-awesome.php al tema Child, quella categoria diventerà il vostro obiettivo, in questo caso con lo slug awesome, senza modificare altro.
Potreste aggiungere category-awesome.php anche al vostro tema genitore, ma questo potrebbe creare dei problemi qualora il tema venisse aggiornato