Come creare un tema child in WordPress: guida passo passo
Un tema child (o tema figlio) è un tema WordPress che eredita tutte le funzionalità e lo stile di un altro tema, detto tema parent. Ti permette di personalizzare il design e le funzionalità del tuo sito senza modificare i file del tema originale. In questa guida ti spiego come crearne uno da zero e perché è essenziale per ogni personalizzazione.
Perché serve un tema child
Quando modifichi direttamente i file di un tema WordPress, ogni aggiornamento del tema sovrascrive le tue modifiche. Hai personalizzato il CSS? Perso. Hai aggiunto funzioni in functions.php? Perse. Un tema child risolve questo problema: le tue personalizzazioni vivono in file separati che non vengono toccati dagli aggiornamenti del tema parent.
Usare un tema child è la best practice raccomandata da WordPress per qualsiasi personalizzazione che vada oltre le opzioni del Customizer. Anche se pensi di fare solo una piccola modifica, crea sempre un tema child: ti risparmierà problemi futuri.
Creare la cartella del tema child
Via FTP o dal file manager del tuo hosting, vai nella cartella wp-content/themes/ e crea una nuova cartella. La convenzione è usare il nome del tema parent seguito da -child. Ad esempio, se il tuo tema parent si chiama twentytwentyfive, la cartella si chiamerà twentytwentyfive-child.
Creare il file style.css
Dentro la cartella del tema child, crea un file style.css con queste righe iniziali:
/* Theme Name: Twentytwentyfive Child Template: twentytwentyfive */
La riga Template è fondamentale: indica a WordPress quale tema parent usare. Deve corrispondere esattamente al nome della cartella del tema parent (non al nome visualizzato). Se sbagli questa riga, il tema child non funzionerà.
Creare il file functions.php
Crea un file functions.php nella cartella del tema child con questo codice per caricare correttamente gli stili del tema parent:
function child_theme_enqueue_styles() {
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
wp_enqueue_style('child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style'));
}
add_action('wp_enqueue_scripts', 'child_theme_enqueue_styles');
Questo codice carica prima il CSS del tema parent e poi quello del tema child. L’ordine è importante: le regole CSS del tema child sovrascrivono quelle del parent grazie alla cascata CSS.
Attivare il tema child
Vai in Aspetto → Temi nella bacheca WordPress. Vedrai il nuovo tema child nella lista. Clicca su Attiva. Il sito dovrebbe apparire identico a prima, perché il tema child eredita tutto dal parent. Da questo momento, ogni personalizzazione che fai nel tema child rimane protetta dagli aggiornamenti.
Personalizzazioni comuni con il tema child
Ecco le personalizzazioni più frequenti che puoi fare con un tema child:
- CSS personalizzato: aggiungi le tue regole nel file style.css del tema child. Sovrascrivono automaticamente quelle del parent.
- Template di pagina: copia un file template dal tema parent (es. single.php, header.php) nella cartella del tema child e modificalo. WordPress userà la versione del child.
- Nuove funzioni: aggiungi le tue funzioni PHP nel functions.php del tema child. Questo file viene caricato prima di quello del parent, non lo sostituisce.
- Nuovi template: puoi creare template di pagina personalizzati che non esistono nel parent.
Sovrascrivere i template del tema parent
Una delle funzionalità più potenti del tema child è la possibilità di sovrascrivere i file template del parent. WordPress cerca prima i template nella cartella del child e, se non li trova, usa quelli del parent. Per personalizzare un template:
- Individua il file che vuoi modificare nella cartella del tema parent (es. single.php per la pagina degli articoli).
- Copia il file nella cartella del tema child, mantenendo la stessa struttura di cartelle.
- Modifica la copia nel tema child. WordPress userà automaticamente questa versione.
Per i temi basati su blocchi (block themes), il processo è simile ma riguarda i file nella cartella templates/ e parts/. Copia il template HTML nella stessa struttura di cartelle nel tema child e personalizzalo.
Aggiungere funzionalità personalizzate
Il file functions.php del tema child è il luogo ideale per aggiungere funzionalità personalizzate. A differenza dei template, il functions.php del child non sostituisce quello del parent: viene caricato in aggiunta, prima di quello del parent. Questo significa che puoi:
- Registrare nuove aree widget con register_sidebar().
- Aggiungere nuovi menu di navigazione con register_nav_menus().
- Creare shortcode personalizzati con add_shortcode().
- Modificare il comportamento del parent rimuovendo le sue azioni con remove_action().
Se il tema parent definisce funzioni con if (!function_exists(‘nome_funzione’)), puoi ridefinirle nel child theme e la tua versione avrà la priorità.
Creare un tema child con un plugin
Se non ti senti a tuo agio con FTP e la creazione manuale dei file, puoi usare il plugin Child Theme Configurator. Questo plugin crea automaticamente la cartella, il file style.css e il functions.php del tema child, e ti permette di personalizzare gli stili tramite un’interfaccia grafica nella bacheca WordPress. È un’ottima soluzione per i principianti.
Errori comuni da evitare
- Template sbagliato in style.css: se il valore di Template non corrisponde esattamente al nome della cartella del tema parent, il child theme non si attiverà.
- Non caricare gli stili del parent: senza il codice in functions.php per accodare gli stili del parent, il sito apparirà senza formattazione.
- Copiare tutti i file del parent: copia solo i file che vuoi modificare. Se copi tutto, perdi il vantaggio degli aggiornamenti automatici del parent.
Serve assistenza?
Se vuoi creare un tema child per il tuo sito WordPress o hai bisogno di personalizzazioni avanzate, il team di SoccorsoWP può configurare tutto per te. Apri un ticket e personalizza il tuo sito in sicurezza.