E’ sempre la scelta migliore quella di creare un tema child quando usiamo WordPress. Il tema child ci permette di fare modifiche al nostro tema grafico senza intaccare i file originali del tema, sovrascrivendo solamente delle cose o aggiungendone altre.
I file del tema child WordPress saranno separati dal tema originale, e quindi le modifiche che apporteremo non scompariranno in caso di aggiornamenti al tema principale.
Cos’è un tema child WordPress
Un tema child è una cartella di file, un “tema figlio”, che andrà caricata nella stessa posizione del nostro tema WordPress e conterrà solo i file che vogliamo modificare del nostro tema, ed un css per scrivere delle regole personalizzate per cambiare l’aspetto del tema genitore.
Con un tema child, tutte le impostazioni e la grafica si baserà sul tema genitore, aggiungendo le nostre personalizzazioni.
Perché usare un tema child in WordPress
Ma perché è meglio usare un tema child e non fare modifiche o cambiamenti direttamente al tema che utilizziamo?
Il primo motivo sono gli aggiornamenti che avvengono periodicamente ai temi WordPress, che io consiglio caldamente di fare sempre, perché gli aggiornamenti possono risolvere bug oltre che aggiungere funzionalità ad un tema.
Se abbiamo modificato le pagine o il css di un tema, e questi deve essere aggiornato, le modifiche che abbiamo fatto verranno totalmente sovrascritte, e noi perderemo tutto il lavoro fatto.
Se invece lavoriamo su un tema child, quando aggiorniamo il “tema padre”, i file contenuti nella cartella del tema child non verranno toccati, e quindi le nostre modifiche non andranno perse.
Esiste un altro motivo per lavorare su un tema child: se per caso facciamo modifiche ad un file e il nostro sito va in crash, perché magari abbiamo fatto un errore, ci basterà rinominare il file modificato nella cartella del tema child, oppure eliminarlo, e sparirà anche il nostro errore.
Come si crea un tema child in WordPress
Alcuni temi, specialmente quelli premium come Enfold, vengono già forniti di un tema child. Alcuni temi lo contengono già nella cartella che scarichi per l’installazione del tema, mentre il tema child di Enfold lo puoi scaricare qui.
Ricordati che il tema child non è altro che una cartella di file, è come un altro tema, da caricare su WordPress, che attiverai al posto del tema padre, ed erediterà da esso tutte le sue funzionalità.
Puoi anche creare tu a mano il tema child del tuo tema WordPress, creando sul tuo PC una cartella che si chiama “miotema-child”, inserendo i file che ti servono nella cartella, nella stessa gerarchia in cui sono presenti nel tema padre, e caricare questo tema child su WordPress
Ci sono due modi per creare un tema child:
- caricarlo via FTP
- installarlo da dentro la dashboard di WordPress.
Se vuoi caricare il tuo tema child via FTP, non devi fare altro che caricarlo nella stessa cartella dove è presente il tuo tema padre, cioè “/wp-content/themes/”
Leggi anche: Installare WordPress via FTP
Se invece vuoi installare il tema child tramite la Bacheca di WordPress, dovrai avere sul tuo PC il tema child in formato .zip, andare su Aspetto > Temi e premere su Aggiungi Tema. Dovrai aggiungere a WordPress sia il tema padre (ad esempio Enfold) che il tema child, ma dovrai attivare il tema child.
Che cosa contiene un tema child?
Ma vediamo nel dettaglio come è strutturato un tema child, a cosa ti può servire e come creare i file al suo interno.
L’ipotesi più comune del motivo perchè tu vuoi creare un tema child è per fare modifiche css al tuo sito senza sovrascrivere il css del tema.
Oggi WordPress mette a disposizione anche un css personalizzato, ma io preferisco sempre avere le cose tutte in un posto e quindi utilizzo il tema child, che creo di base ogni volta che faccio una installazione di WordPress, non si sa mai che debba servire.
Quindi il file più comune che si può trovare all’interno di un tema child è proprio “style.css”. In questo file potrai scrivere tutte le regole css che vorrai ed avranno la precedenza sulle regole css del tema (non su quelle in linea ovviamente).
Se ad esempio gli H1 del tuo tema sono di colore nero e invece tu li vuoi di colore rosso, imposterai nel tema child la regola, che sovrascriverà la regola del tema.
Enfold come ti dicevo è già dotato di un tema child di base, che contiene già “style.css” pronto all’uso, ma se devi creare da zero il tuo tema child, dovrai creare all’interno della cartella il file “style.css” e all’inizio del file scrivere queste poche righe:
/*
Theme Name: Enfold Child
Description: A <a href='http://codex.wordpress.org/Child_Themes'>Child Theme</a> for the Enfold WordPress Theme. If you plan to do a lot of file modifications we recommend to use this Theme instead of the original Theme. Updating wil be much easier then.
Version: 1.0
Author: Kriesi
Author URI: http://www.kriesi.at
Template: enfold
*/
/*Add your own styles here:*/
Le righe più importanti sono quelle relative a “Theme name” in cui dovrai scrivere il nome del tuo tema child, e soprattutto “template” che sarà il nome del template del tema padre, cioè della cartella sul sito che contiene il tema (se lavori con l’FTP vedrai tutti i nomi delle cartelle dei temi comodamente).
Fatto questo, dovrebbe bastare, ma alcune volte, per alcuni temi, è necessario creare anche un file “functions.php” e inserire una funzione in esso che carichi tutti i css del tema padre.
Dunque se vedi che, attivando il tema child, qualcosa non quadra nella grafica, ti conviene farlo, anche se su Enfold non è necessario. Quindi crea sempre nella cartella “miotema-child” un file che chiamerai appunto “functions.php” ed in cui inserirai questa funzione:
<?php
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
function my_theme_enqueue_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
Fai attenzione mi raccomando al nome del file indicato nella funzione, che dovrà essere quello del foglio di stile del tuo tema padre.
Su Enfold, come ti dicevo, questa funzione non è necessaria, puoi caricare tranquillamente un file functions vuoto e lasciarlo lì se ti servirà in futuro.
A cosa può servire il file functions.php?
Il file functions.php può risultare molto utile se si vogliono aggiungere delle semplici funzionalità al proprio sito senza ricorrere a plugin.
Ad esempio, nel file functions si può aggiungere il codice Analytics senza ricorrere a plugin. Ti basta incollare questo codice:
add_action('wp_head','my_analytics', 20);
function my_analytics() {
?>
INSERISCI IL TUO CODICE ANALYTICS COMPLETO QUI
<?php
}
Questo è solo un esempio di tutto quello che puoi aggiungere o personalizzare attraverso il file functions.php, ad esempio puoi aggiungere il pixel di Facebook, o altri codici nell’head del sito. Io nel fie functions del tema child Enfold ad esempio ho modificato la dimensione dell’immagine di anteprima dei post (ti spiego qui come fare) ed ho tolto il campo URL dai commenti, per evitare commenti spam che contenessero link.
Inserire altri file nel tema child
Può accadere che tu abbia bisogno di modificare alcune righe di codice presenti nel file del tema e non sia possibile farlo né tramite css né tramite funzioni.
E’ possibile allora creare una copia del file che ti serve e inserirla nel tema child, facendo le modifiche.
I file presenti nel tema child avranno la precedenza su quelli nel tema padre, ma devi fare attenzione che la gerarchia di file e cartelle sia la stessa del tema padre.
Inoltre in questo caso, se ci saranno degli aggiornamenti ufficiali al tema padre, può darsi che i file che hai modificato siano stati modificati dagli sviluppatori, dovrai pertanto ricordarti di confrontare la tua versione dei file con quella degli sviluppatori, e di aggiornare le modifiche, altrimenti potrebbero esserci dei mal funzionamenti del tema.
E’ tutto chiaro? Hai mai usato prima d’ora un tema child? Se hai domande o vuoi dei chiarimenti scrivi pure nei commenti qui sotto!