Quante volte vi è capitato di voler personalizzare un tema di WordPress? Magari per aggiungere nuove funzioni oppure semplicemente per cambiare i colori del font o dello sfondo. Spesso quando si eseguono queste modifiche si commette l’errore di intervenire sui files sorgente modificando il core stesso del tema. Questa procedura non ortodossa rischia di compromettere la sicurezza del tema e sopratutto un eventuale aggiornamento andrà a cancellare tutte le modifiche apportate. L’aggiornamento di un tema comporta infatti la sovrascrittura di tutti i file che lo compongono e il conseguente annullamento di tutte le personalizzazioni!
Il modo migliore per eseguire queste modifiche è quindi quello di creare un tema figlio “Child Theme” in WordPress.
Cos’è un Child Theme in WordPress?
Un Child Theme è semplicemente una copia esatta del tema principale o “Parent Theme”, qualsiasi modifica grafica o funzionale che venga aggiunta al Child Theme viene quindi riprodotta nel Parent Theme. Il modo in cui funziona è molto semplice, praticamente il tema figlio si va a sovrapporre a un tema principale, rendendo possibile effettuare modifiche al tema, per personalizzarlo senza incidere sul codice del tema principale. In questo modo, quando il tema padre verrà aggiornato, non perderemo le modifiche effettuate, per questo i child themes rappresentano il miglior modo per apportare modifiche a un tema di WordPress.
I motivi per cui è utile ricorrere a questa tecnica possono essere tanti: se si vuole modificare un template, che per tempi di progettazione ristretti o per un progetto a basso costo si è acquistato in uno dei tanti store, senza perdere le modifiche effettuate aggiornando il tema in futuro, o se si vogliono apportare delle modifiche temporanee per cambiare la grafica del sito per un concorso fatto dal gestore del sito, adattare la grafica per periodo festivo o una campagna pubblicitaria. Un altro caso in cui può essere usato il tema figlio è per gestire grandi portali con diverse aree tematiche che condividono un estetica comune, con parti che si vanno a differenziare in alcuni particolari. Vediamo con un esempio pratico tutti i passaggi necessari alla creazione di un child theme.
Quali sono i vantaggi nell’usare un Child Theme?
- Un child theme permette di salvare le personalizzazioni. Potrete infatti applicare delle modifiche al core di WordPress senza rischiare di perderle quando aggiornerete WordPress oppure il tema padre.
- Capire il meccanismo di funzionamento di un child theme è il primo passo verso la comprensione di WordPress e del suo codice.
Come creare un tema figlio in WordPress?
1 – Per prima cosa dovrete creare una nuova cartella del tipo temaprincipale-child all’interno della directory wp-content/themes di WordPress nella quale saranno contenuti tutti i files del child theme. Se ad esempio volete create un tema figlio di twentyfourteen allora potete rinominare la cartella twentyfourteen-child.
2 – Nella cartella che avete creato in precedenza dovrete creare un file CSS chiamato style.css questo è l’unico file richiesto per creare un tema figlio. Il foglio di stile che avete appena creato dovrà contenere le seguenti stringhe:
/*
Theme Name: Twenty Fourteen Child
Theme URI: http://example.com/twenty-fourteen-child/
Description: Twenty Fourteen Child Theme
Author: John Doe
Author URI: http://example.com
Template: twentyfourteen
Version: 1.0.0
Tags:
Text Domain: twenty-fourteen-child
*/
@import url("../twentyfourteen/style.css");
/* =Theme customization starts here
-------------------------------------------------------------- */
Potete modificare ciascuna di queste stringhe di codice a vostro piacimento facendo attenzione a specificare Theme Name e il Template. La voce Template deve essere la stessa del parent theme, nel nostro caso twentyfourteen. La voce @import url(“../twentyfourteen/style.css”); importa il file CSS dal Parent Theme.
- Il foglio di stile del tema figlio può essere scritto e personalizzato dopo avere specificato el stringhe di cui sopra.
- Una volta creati questi files potete attivare il tema figlio. Entrate nel apnnello di amministrazione di WordPress e andate alla voce di menù Administration Panels > Appearance > Themes. Il vostro tema figlio sarà elencato insieme agli altri. Cliccate sul pulsante attiva!
3 – Se volete intervenire su altri files e non solo sul foglio di stile principale, allora dovrete semplicemente includere i files che volete modificare all’interno della cartella del tema figlio in questo modo il file del core del parent theme verrà sovrascritto con quello personalizzato. Ad esempio qualora vogliate cambiare il codice PHP nell’header del tema, allora dovrete includere il file header.php nella directory del vostro child theme.
A differenza del foglio di stile CSS il file functions.php non sovrascrive il corrispettivo del parent theme ma viene invece caricato in combinazione con quest’ultimo. (In particolare il file functions.php viene caricato prima di quello del Parent Theme). In particolare attraverso le modifiche al file functions.php è possbile modificare le funzionalità del tema. E’ importante che non copiate il contenuto del file presente nel parent theme all’interno di quello del Child Theme.
Per ulteriori informazioni vi suggerisco di consultare il sito ufficiale di WordPress oppure themeshaper.com. Spero che questo articoli sia stato utile ad introdurre l’importanza dei child themes, in particolare per tutti coloro che abbiano necessità di eseguire delle modifiche al prorpio tema o per chi volessse sviluppare il proprio tema per WordPress. Perché non condividete con me le vostre esperienze sull’uso dei Child Theme?
Nicola dice
Ciao Vincenzo l’articolo e’ interessantissimo, ti chiedo una ulteriore informazione, io ho fatto un sito con una versione tema vecchia (non ho purtroppo eseguito gli aggiornamenti) http:\\giardiniere-modena.it, se lo aggiorno (ho provato) perdo un sacco di cose. Quindi ti chiedo se adesso creo un tema child mi eredita tutte le modifiche, foto, funzionamento estetica etc…..del tema che ho adesso online? o le perderei comunque alcune cose visto che il tema genitore e’ gia’ stato modificato parecchio….
Grazie
Ciao
Vincenzo dice
Ciao Nicola il tema child prende i parametri dal tema padre e aggiunge a questo eventuali modifiche che apporti sul tema figlio. Quindi credo che aggiornando il tema padre comunque rischi di perdere le modifiche. Ti consiglio di migrare il sito in locale e quindi fare li le prove di aggiornamento.
Manuel dice
Grazie! Articolo chiaro e intuitivo per chi come me voleva saperne qualcosa di più a riguardo dei Child-themes!