A cosa serve un child-theme per WordPress e come crearlo
Nel post precedente mi sono di nuovo trovato a parlare dei child-themes e ancora una volta mi merito la flagellazione per non avere scritto un post che dicesse cosa diamine sono i child-themes e perché sono tanto importanti in WordPress, eccomi, sono qui per rimediare a questa mancanza con un articolo che spero getti nuova luce su questa importantissima funzionalità di WordPress.
Molto dell’aspetto e delle funzionalità di un sito in WordPress non sono proprie della piattaforma ma del tema in uso, questo vuol dire che cambiando tema il sito oltre ad avere una grafica ed un layout diverso potrebbe avere anche diversi comportamenti dal punto di vista delle funzioni, magari avete fatto delle personalizzazioni su un tema e quando lo cambiate queste non ci sono più, non solo ma le personalizzazioni che vi sono costate tanta fatica possono improvvisamente scomparire se il tema viene aggiornato e sovrascrive i files che avevate modificato costringendovi a ricominciare da capo. Un disastro vero? Può essere evitato mediante l’uso di un child-theme per il tema che state utilizzando, in realtà i child-themes andrebbe realizzati per tutti i temi che avete a bordo o che pensate di utilizzare e dovrebbero essere sempre compresi nei backup.
Ma cosa è esattamente un child-theme per WordPress e come si crea?
Un child-theme per WordPress è un “tema figlio” che eredita tutte le caratteristiche principali del “tema genitore” e su cui vengono applicate modifiche e personalizzazioni senza modificare il tema genitore e senza che queste vadano perdute durante gli aggiornamenti del tema genitore con la sostituzione dei suoi files. Un child-theme consente anche di effettuare esperimenti sul tema del sito senza comprometterne le funzionalità modificando il tema principale. Ma come si crea un “child-theme”?
Il procedimento di base è abbastanza semplice, accedete via FTP al vostro sito e spostatevi nella cartella wp-content/themes e create una nuova cartella per il child-theme, per esempio: se il tema che state usando si chiama “miotema”, la cartella del child-theme si chiamerà “miotema-child”, in questa cartella dovrete creare un foglio di stile che banalmente chiamerete “style.css” che verrà caricato insieme al foglio di stile del tema genitore e ne integrerà le istruzioni. Il foglio di stile andrà creato in questa maniera:
/* Theme Name: Il Mio Tema Child Theme URI: http://miosito.com/wp-content/themes/ilmiotema-child Description: Tema Child per il tema Il Mio Tema Author: Qui il vostro nome Author URI: http://example.com/about/ Template: ilmiotema Version: 0.1.0 */ @import url(../ilmiotema/style.css);
le righe obbligatorie sono “Theme Name” e “Template”, Template è la cartella in cui risiede il tema genitore mentre l’ultima riga con l’istruzione @import url serve a caricare il foglio di stile del tema genitore insieme a quello del child-theme e le diverse istruzioni inserite in quest’ultimo sovrascriveranno o integreranno quelle del foglio di stile del tema genitore, quindi in soldoni se nello style.css c’è scritto che i links devono essere rossi ed in quello del child-theme c’è scritto che devono essere verdi, a prevalere sarà questa istruzione ed i vostri links saranno tutti verdi, idem con patate per tutto quello che andrete ad inserire nello “style.css” del child-theme, tutte le modifiche influiranno sull’aspetto del sito.
Il file functions.php nel child-theme
Oltre alle variazioni stilistiche e grafiche il child-theme è importante per le funzionalità che potete introdurre creando un file “functions.php” nella cartella del child-theme, questo file conterrà tutte le funzioni che vorrete aggiungere al sito e lavorerà insieme al file functions.php del tema genitore venendo caricato prima di questo, quindi in questo caso non andrà a sovrascrivere le funzioni esistenti ma ne aggiungerà di nuove. E’ facile crearlo, basta un tag php di apertura ed uno di chiusura ed in mezzo inserire le funzioni da attivare:
Se avete seguito queste brevi istruzioni avrete creato il vostro primo child-theme per WordPress ed ora potete anche attivarlo, magari fate prima una cosa che può sempre tornare utile a beneficio dell’ordine: andate nella cartella del tema genitore, dentro ci troverete una immagine che si chiama “screenshot.png”, scaricatela e poi scriveteci sopra “CHILD” e caricatela nella cartella del child-theme, in questa maniera quando andrete in Aspetto-> Temi, anche il vostro child-theme avrà la sua icona, se non ce la mettete WordPress ci mette al suo posto una casella bianca che non è affatto bella da vedere. Questa è l’icona del mio tema Storefront-Child che in questo modo riesco a distinguere dal tema genitore:
Adesso non vi resta altro da fare che andare in Aspetto-> Temi e attivare “ilmiotema-child”, in seguito valuterete quali cambiamenti stilistici effettuare e quali funzioni inserire in questo tema che funzionerà in tutto e per tutto comeil tema genitore salvo per le modifiche che avrete effettuato e che effettuerete e che rimarranno attive ad onta di futuri aggiornamenti del tema genitore e con la risorsa in più di poter passare dal child-theme al tema genitore se qualche funzione che avete inserito nel file functions.php dovesse fare le bizze.
Il discorso sui child-theme per WordPress non si esaurisce, ci torneremo spesso per vedere le possibilità che offre questa risorsa, nel frattempo potete anche dare una letta a quanto scritto sul Codex di WordPress sull’argomento child-theme.