- by Roberto Paolucci
- 3 Dicembre 2022
DeveloPress.it sta caricando
Tempo di lettura: 2 minuti
Un tema creato da alcuni anni può funzionare ancora bene ma mancheranno sicuramente alcune funzionalità più recenti e che possono essere per noi utili al progetto. In WordPress la compatibilità con le versioni precedenti è ben supportata ma non può esserlo per sempre. Quindi la compatibilità è un argomento molto delicato ed è una delle principali cause della creazione di temi base che vengono poi estesi con i temi child. Quindi l’utente può aggiornare il tema principale senza perdere nessuna modifica. Può esserti utile leggere prima questo articolo “Plugin o functions.php?“.
I temi child permettono di creare temi che si basano su temi genitori utilizzati come template, modificando parti del tema di partenza per adattarli alla proprie esigenze. Può capitare che, o a noi o ad cliente, piace un tema nel complesso ma non gli piacciono i font o i colori, in questo caso creare un child-theme può essere una valida soluzione. Oppure può verificarsi l’esigenza di avere un tema che ci soddisfa ma abbiamo bisogno di un nuovo template di pagina, anche in questo caso possiamo risolvere con un tema child.
Il tema child si trova in una cartella propria e divisa dal tema padre, così come tutti i suoi file, pertanto quando carichiamo la nuova versione del tema originale sulla quale abbiamo basato il nostro sito, sovrascriviamo soli i file di quel tema e non il tema child che contiene tutte le modifiche.
I theme child possono essere utilizzati in molte situazioni e per le più disparate necessità ma vediamo quali sono le principali per le quali ha veramente senso creare una tema child:
I child theme costituiscono un modo efficace e sicuro per aggiungere personalizzazioni ad un tema. Vediamo nel dettaglio come realizzarne uno.
Creiamo, all’interno della cartella themes, una nuova cartella chiamata: NomeTema-child, dove “NomeTema” è il tema genitore. Al suo interno andremo a creare due file principali (e obbligatori): style.css e functions.php.
Ogni child theme deve avere almeno due file:
Il file style.css conterrà in alto il testo commentato che comunica a WordPress che questo è un child theme e qual è il suo tema genitore. Il file functions.php contiene una funzione che accoda il foglio di stile del tema principale.
Di seguito il codice da aggiungere all’interno del file style.css
/*
Theme Name: Il mio tema child per Twenty Nineteen.
Theme URI: https://developress.it
Description: Questo tema ha molte più funzionalità del tema base come ad esempio la gestione dei custom field e dei CPT
Author: Developress
Textdomain: developress
Author URI: https://developress.it
Template: twentynineteen
Version: 1.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/
Di seguito, invece, il codice per il file functions.php
<?php
/* enqueue script for parent theme stylesheeet */
function developress_parent_styles() {
// enqueue style
wp_enqueue_style( 'parent', get_template_directory_uri().'/style.css' );
}
add_action( 'wp_enqueue_scripts', 'developress_parent_styles');
il codice sopra utilizza la funzione wp_enqueue_style() per accodare il foglio di stile del tema principale, con la funzione get_template_directory_uri() che individua la location dove è archiviato il file.
Il child theme non deve includere obbligatoriamente altri file. A differenza del tema principale, non è necessario il file index.php come fallback se non ci sono file più specifici nel tema (vedere la gerarchia dei temi per maggiori dettagli). Questo perché, se non esiste un template file nel child theme, WordPress utilizzerà il file presente nel tema principale.
Quindi, a seconda di quello che vogliamo fare nel nostro child theme, aggiungiamo un codice extra al foglio di stile, al file functions.php, oppure creiamo file extra nel child theme per sovrascrivere il tema genitore. Questi potrebbero includere uno o più di:
Anche se i temi child rappresentano una buona pratica in fase di sviluppo, ci sono alcune situazioni in cui è sconsigliato utilizzarli in quanto è preferibile apportare modifiche seguendo altre strade. Vediamo quando è meglio non utilizzare i child theme:
Una volta completato il theme child è necessario attivarlo da backend in aspetto > temi
Questo articolo rappresenta una guida introduttiva ai temi child di WordPress, quindi se hai dubbi o curiosità di approfondire il concetto, non esitare a contattarmi.
Non faccio grandi cose ma piccole cose che sembrano funzionare bene.
Roberto Paolucci