Skip to content

Tutto per WordPress, lo sviluppo web — e non solo

🧩 Tema child WordPress: una guida completa per creare e personalizzare

🧩 Tema child WordPress: una guida completa per creare e personalizzare

Hai installato un tema, rifinito il sito, regolato colori e font, aggiunto un paio di template personalizzati. Poi arriva un aggiornamento del tema e cancella tutto. Ti suona familiare?

Un tema child in WordPress è il meccanismo che separa le tue personalizzazioni dal codice dello sviluppatore. Modifichi quello che vuoi e il tema padre si aggiorna senza conseguenze. Sembra magia, ma dietro c'è solo una riga nel style.css.

In questa guida, dal concetto a un tema child funzionante: perché ti serve, come crearlo manualmente, come fare l'enqueue degli stili e del functions.php e cosa fare se qualcosa va storto. Niente fronzoli, solo snippet testati.

💡 Panoramica rapida:

  • Crea una cartella per il tema child in /wp-content/themes/, qualsiasi nome va bene, ad esempio mytheme-child
  • Aggiungi style.css con un'intestazione del tema e una riga Template: che punti alla cartella del tema padre
  • Carica gli stili del padre tramite functions.php, usando la funzione wp_enqueue_style() sull'hook wp_enqueue_scripts
  • Copia qualsiasi file di template dal tema padre nel tema child e modificalo senza paura degli aggiornamenti
  • Tutto il resto (functions.php, campi personalizzati, nuovi template) può essere esteso senza toccare il tema padre

Cos'è un tema child di WordPress

Un tema child è un tema WordPress che eredita tutte le funzionalità, gli stili e i template da un altro tema. Quello da cui eredita è chiamato tema padre. Un tema child da solo può essere composto anche solo da un file style.css e funzionare perfettamente.

Codice di un tema WordPress sullo schermo di un monitor

Il meccanismo di ereditarietà è semplice. Quando WordPress carica una pagina, cerca prima il file di template richiesto nel tema child. Se lo trova, usa quel file. Se non lo trova, prende il file dal tema padre. Ecco perché puoi sovrascrivere solo ciò che vuoi cambiare e tutto il resto verrà automaticamente dal tema padre.

L'elemento chiave senza il quale un tema child non può esistere è la riga Template: nell'intestazione del style.css. Punta al nome della cartella del tema padre (ad esempio, twentytwentyfour) e crea la relazione padre-figlio. La riga deve corrispondere esattamente al nome della cartella del tema padre, incluse le maiuscole e minuscole.

Il tema padre può essere QUALSIASI tema WordPress installato, dal predefinito Twenty Twenty-Five a un tema commerciale come Total o Kadence. Il tema child "prende in prestito" i suoi file e le sue funzioni, ma non li copia fisicamente.

Perché ti serve un tema child: 4 motivi

Potresti saltare tutto questo e modificare direttamente il tema padre. Molti lo fanno. Ma ecco cosa succede dopo.

Aggiornamenti sicuri

Lo sviluppatore del tema padre rilascia un aggiornamento e tu lo installi. Se hai modificato direttamente i file del tema padre, tutte le modifiche vengono cancellate. Un tema child conserva le tue personalizzazioni separatamente: aggiornare il padre non le tocca. Ottieni sia la nuova versione del tema (con le correzioni di sicurezza) sia le tue personalizzazioni preservate.

Sperimentazione isolata

Vuoi provare una nuova struttura di template o un hack CSS non convenzionale? In un tema child puoi sperimentare liberamente. Se qualcosa va storto, disattiva il tema child e il sito torna al tema padre nel suo stato originale.

Codebase pulita

Un tema child contiene solo le tue modifiche. Un paio di template, functions.php con gli hook, style.css con le sovrascritture. Nessun mix di codice originale e tue modifiche. Quando devi sistemare qualcosa sei mesi dopo, non stai scavando nel codice di qualcun altro cercando il tuo.

Avvio rapido dello sviluppo

Un tema child è il sandbox perfetto per imparare lo sviluppo di temi WordPress. Non scrivi un tema da zero (ci vogliono centinaia di ore), ma apporti modifiche mirate a un tema già funzionante. La documentazione ufficiale sui temi child di WordPress raccomanda proprio questo approccio per gli sviluppatori principianti.

Quali sono gli svantaggi dei temi child

Ci sono anche degli svantaggi. Non sono critici, ma conoscerli in anticipo aiuta.

Conoscenze di base di coding richieste

Impostare un tema child richiede HTML, CSS e un po' di PHP. Se non hai mai aperto un editor di codice, dovrai imparare le basi. La buona notizia: per le attività tipiche (enqueue degli stili, aggiunta di un hook) il codice è già scritto; devi solo copiarlo e sostituire i tuoi valori.

Migrazione delle impostazioni del Customizer

Alcuni temi legano le impostazioni del Customizer (colori, font, layout) al nome del tema attivo. Quando si passa a un tema child, queste impostazioni "scompaiono". Non sono perse; rimangono nel database, legate al nome del tema padre. La soluzione: prima di attivare il tema child, esporta le impostazioni del Customizer (molti temi, come Total, forniscono uno strumento di import/export integrato), oppure trasferiscile manualmente dopo l'attivazione.

Dipendenza dal tema padre

Un tema child senza il suo padre è solo una cartella con dei file. Se decidi di cambiare completamente tema, dovrai creare un nuovo tema child da zero. Le funzioni incorporate nel functions.php del tema child potrebbero essere legate a hook specifici di un particolare tema padre e dovranno anch'esse essere adattate.

Come creare un tema child manualmente

Il percorso più diretto, senza plugin, usando solo le tue mani. Avrai bisogno di accesso ai file del tuo sito (FTP, file manager del tuo hosting o cPanel) e un editor di testo.

Passo 1. Crea la cartella del tema child

Apri la directory dei temi di WordPress: /wp-content/themes/. Crea una nuova cartella. Qualsiasi nome va bene, ma la convenzione è aggiungere il suffisso -child al nome del tema padre: ad esempio, per twentytwentyfive la cartella child sarebbe twentytwentyfive-child.

Per lavorare con i file via FTP, FileZilla funziona bene. Tramite hosting, usa il file manager integrato in cPanel o nel tuo pannello di hosting.

Passo 2. Crea style.css con l'intestazione del tema

Nella cartella del tema child, crea un file chiamato style.css. Questo è l'unico file obbligatorio. Incolla l'intestazione del tema:

1/*
2Theme Name: Twenty Twenty-Five Child
3Theme URI: https://example.com/
4Description: Child theme for Twenty Twenty-Five
5Author: Your Name
6Template: twentytwentyfive
7Version: 1.0.0
8*/

La riga Template: è quella che collega il tema child al padre. Il valore deve corrispondere ESATTAMENTE al nome della cartella del tema padre. Per Twenty Twenty-Five la cartella si chiama twentytwentyfive, quindi è esattamente quello che scrivi. Un errore di battitura o una lettera maiuscola/minuscola sbagliata significa che il tema non sarà riconosciuto come tema child.

Passo 3. Carica gli stili del tema padre

A questo punto il tema child funziona già; puoi attivarlo in Aspetto → Temi. Ma il sito apparirà senza stili perché il tuo style.css è ancora vuoto (a parte l'intestazione).

Crea un file chiamato functions.php nella cartella del tema child e aggiungi il codice per l'enqueue degli stili del padre:

1add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
2
3function my_theme_enqueue_styles() {
4 $theme = wp_get_theme( 'twentytwentyfive' );
5 $version = $theme->get( 'Version' );
6
7 wp_enqueue_style(
8 'parent-style',
9 get_template_directory_uri() . '/style.css',
10 array(),
11 $version
12 );
13}

Questo codice rileva dinamicamente la versione del tema padre e la aggiunge come parametro all'URL del foglio di stile. Quando il tema si aggiorna, la versione cambia, il browser svuota la cache e gli utenti vedono gli stili correnti senza problemi di CSS.

Sostituisci twentytwentyfive con il nome del tuo tema padre. Usa wp_get_theme() invece di un numero di versione fisso; questo ti protegge da problemi di cache durante gli aggiornamenti.

Codice e file del tema child

Passo 4. Attiva il tema child

Nell'amministrazione di WordPress: Aspetto → Temi → trova il tuo tema child appena creato → Attiva. L'aspetto del sito non cambierà; è normale. Sei sul tema child e funziona.

Come personalizzare un tema child

Il tema è attivato; ora passiamo alla personalizzazione. Ecco cosa puoi e dovresti fare.

Aggiungere i tuoi stili

Scrivi tutte le tue regole CSS NEL file style.css del tema child, dopo la sezione dell'intestazione. Sovrascriveranno automaticamente gli stili del tema padre con la stessa specificità. Se vuoi cambiare il colore dei titoli, scrivi la regola nel style.css child e verrà applicata.

Modificare i file di template

Vuoi cambiare la struttura di single.php o footer.php? Copia il file desiderato dal tema padre nella cartella del tema child, mantenendo la stessa struttura di sottocartelle (ad esempio, /template-parts/). Modifica la copia nel tema child; quando WordPress carica, userà la tua versione invece dell'originale del padre.

Dettaglio importante: puoi copiare solo FILE DI TEMPLATE (quelli che si trovano nella cartella principale del tema e nella cartella template-parts/). I file da sottocartelle come inc/, functions/ e classes/ non si copiano in questo modo. Per modificare la logica di quei file, usa gli hook e i filtri di WordPress.

Estendere tramite functions.php

Il functions.php del tema child si carica PRIMA di quello del padre. Questo significa che puoi:

  • Aggiungere nuove funzioni senza toccare il functions.php del padre;
  • Sovrascrivere le funzioni del padre solo se sono racchiuse in if ( ! function_exists() );
  • Aggiungere nuovi hook e filtri per cambiare il comportamento del tema padre o di WordPress stesso.

Esempio: consentire il caricamento di SVG tramite il functions.php child:

1function my_child_allow_svg( $mimes ) {
2 $mimes['svg'] = 'image/svg+xml';
3 return $mimes;
4}
5add_filter( 'upload_mimes', 'my_child_allow_svg' );

Non copiare MAI l'INTERO functions.php dal tema padre nel tema child. Questo causerà un errore fatale a causa di funzioni dichiarate due volte. Il functions.php child estende quello del padre; non lo sostituisce.

Aggiungere nuovi file di template

Un tema child può contenere template che non esistono nel padre. Ad esempio, puoi creare template-full-width.php per pagine senza sidebar e WordPress lo rileverà nel tema child e lo offrirà come opzione durante la modifica di una pagina.

Strumenti ed editor di testo

Qualsiasi editor va bene per il codice del tema child, ma l'evidenziazione della sintassi facilita le cose. Ecco alcune opzioni:

  • VS Code: gratuito, con estensioni per PHP e WordPress;
  • Notepad++: un editor leggero per Windows che gestisce CSS/PHP/JS;
  • Sublime Text: veloce e minimalista, a pagamento dopo il periodo di prova.

Per accedere ai file via FTP, usa il client FTP FileZilla. Per gli utenti hosting, il file manager integrato di cPanel è perfettamente adeguato per creare un paio di file.

Sviluppatore al lavoro su un sito WordPress

Errori comuni e come risolverli

In anni di lavoro con i temi child abbiamo compilato una lista degli ostacoli più frequenti.

"Il tema child non viene riconosciuto." Quasi sempre è un errore nella riga Template:. Controlla che il nome della cartella del tema padre corrisponda carattere per carattere, inclusi maiuscole/minuscole e trattini. TwentyTwentyFive e twentytwentyfive sono nomi diversi.

"Il sito mostra HTML semplice senza stili." Il tema child è attivato ma gli stili non sono stati caricati. Aggiungi wp_enqueue_style() nel functions.php del tema child (vedi Passo 3).

"Errore fatale PHP dopo l'attivazione." Molto probabilmente hai copiato il functions.php del tema padre nel child e ora le funzioni sono dichiarate due volte. Rimuovi i duplicati dal functions.php child; tieni solo le TUE funzioni.

"Le impostazioni del Customizer sono sparite." Sono legate al nome del tema. Torna temporaneamente al padre, esporta le impostazioni (tramite un plugin o lo strumento integrato del tema), poi attiva il child e importale.

"L'aggiornamento del tema padre ha rotto il layout." Lo sviluppatore ha cambiato la struttura HTML di un template che hai copiato nel tema child. La tua copia ora è incompatibile con i nuovi stili. Soluzione: confronta il nuovo template del padre con la tua copia e adatta le modifiche.

Video passo-passo (EN) sulla creazione di un tema child: dalla creazione della cartella all'attivazione finale e configurazione degli stili. Canale WPEstate, 2025, chiaro e senza riempitivi.

⁉️🤔 Domande frequenti

Devo creare un tema child per ogni sito WordPress?

No. Se non modifichi i file del tema e non aggiungi codice personalizzato, non hai bisogno di un tema child. Ma se hai mai aperto l'editor del tema nell'amministrazione, aggiunto CSS in CSS aggiuntivo e prevedi di modificare i template, crea un tema child. Richiede 10 minuti ora e ti fa risparmiare ore al prossimo aggiornamento.

Cosa succede se cancello il tema padre ma tengo il tema child?

Il sito andrà in crash con un errore critico. Un tema child senza il suo padre non funziona; non contiene un set completo di file ed eredita tutto dal padre. Prima di cancellare il tema padre, cancella (o disattiva) prima il tema child e attiva un tema diverso.

Posso creare un tema "nipote", un child di un child?

No. WordPress supporta solo un livello di ereditarietà: padre → child. Per personalizzazioni complesse che non rientrano in un singolo tema child, l'approccio corretto è fare un fork del tema e creare un tema padre completo, oppure spostare la logica in un plugin separato.

Un tema child funziona con i temi a blocchi (FSE, Full Site Editing)?

Sì, ma il meccanismo differisce leggermente. Nei temi a blocchi il theme.json del tema child viene unito a quello del padre invece di sostituirlo. I template e le parti di template vengono sovrascritti allo stesso modo: creando un file con lo stesso nome nel tema child. Maggiori dettagli nella documentazione ufficiale delle Risorse per Sviluppatori su wordpress.org.

Come trasferisco le personalizzazioni già fatte nel tema padre al tema child?

Identifica cosa hai cambiato: CSS, template o functions.php. Copia le regole CSS nel style.css child. Per i template modificati, copia i file nel tema child e mantieni lì le tue modifiche. Trasferisci il codice dal functions.php del padre in modo selettivo: solo le tue funzioni, non l'intero file. Dopo il trasferimento, rimuovi le tue modifiche dal tema padre; altrimenti andranno perse al prossimo aggiornamento.

Dovresti creare un tema child adesso

Se hai letto fin qui, la risposta è probabilmente sì. Un tema child non complica il sito e non lo rallenta. Separa il tuo codice da quello dello sviluppatore del tema. È come commentare il codice: all'inizio sembra inutile, ma un mese dopo ti salva.

Per chi modifica un tema per la prima volta: inizia con un sandbox. Un server locale (LocalWP, XAMPP) o un sito di staging sul tuo hosting. Crea un tema child seguendo i passaggi sopra, aggiungi un paio di regole CSS, copia un template. Quando vedi che tutto funziona, ripeti sul tuo sito live.

La domanda non è se hai bisogno di un tema child. La domanda è quando te ne ricorderai: prima dell'aggiornamento del tema o dopo che le tue personalizzazioni sono svanite.