Chi Siamo Area Clienti Promo del Mese Dicono di Noi Portfolio FAQ Blog
Senza categoria

Child Theme WordPress: Creare e Personalizzare un Tema Figlio

Gianluca Gentile
Gianluca Gentile
· 12 min di lettura

Child Theme WordPress: Creare e Personalizzare un Tema Figlio

Un child theme (tema figlio) è uno dei concetti più importanti e utili dell’ecosistema WordPress, eppure molti proprietari di siti e persino alcuni sviluppatori lo ignorano o lo sottovalutano. Il child theme è una tecnica che permette di personalizzare un tema WordPress senza modificare direttamente i file del tema originale (parent theme). Questo garantisce che le tue personalizzazioni non vengano perse quando il tema parent riceve un aggiornamento, un problema che affligge regolarmente chi modifica direttamente i file del tema.

In questa guida completa imparerai cos’è un child theme, perché è essenziale, come crearlo da zero, come utilizzarlo per personalizzare ogni aspetto del tuo sito e quali best practice seguire per un risultato professionale. Che tu sia un principiante che vuole cambiare qualche colore o uno sviluppatore che necessita di override complessi, questa guida ti fornirà tutti gli strumenti necessari.

Perché usare un child theme

Il motivo principale per usare un child theme è uno: proteggere le personalizzazioni dagli aggiornamenti. Quando aggiorni il tema parent (e devi aggiornarlo regolarmente per sicurezza e compatibilità), tutti i file del tema vengono sostituiti con la nuova versione. Se hai modificato functions.php, style.css, header.php o qualsiasi altro file direttamente nel tema parent, le tue modifiche vengono cancellate.

Con un child theme, le personalizzazioni vivono in file separati che il sistema di aggiornamento non tocca. WordPress utilizza un meccanismo di ereditarietà: il child theme eredita tutte le funzionalità del parent theme e le sovrascrive solo dove specifichi esplicitamente delle modifiche. È il principio dell’override selettivo.

Ma i vantaggi vanno oltre la protezione dagli aggiornamenti:

Organizzazione del codice: tutte le personalizzazioni sono raccolte in una cartella separata, rendendo facile identificare cosa è stato modificato rispetto al tema originale.

Facilità di rollback: se una personalizzazione causa problemi, puoi semplicemente rimuoverla dal child theme o disattivarlo temporaneamente per tornare al tema parent originale.

Sperimentazione sicura: puoi provare modifiche al design o alle funzionalità sapendo che il tema originale resta intatto.

Collaborazione: in un team, il child theme rende chiaro chi ha fatto quali modifiche e quando, senza confondersi con il codice del tema parent.

Come funziona l’ereditarietà dei child theme

WordPress implementa un sistema di ereditarietà elegante per i child theme. Ecco come funziona:

Template files: quando WordPress deve visualizzare una pagina, cerca prima il template nel child theme. Se lo trova, lo usa. Se non lo trova, usa quello del parent theme. Questo significa che puoi sovrascrivere qualsiasi file template del parent theme semplicemente creandone una copia nel child theme con lo stesso nome.

Stili CSS: il file style.css del child theme viene caricato dopo (o al posto di) quello del parent theme. Le regole CSS nel child theme hanno priorità su quelle del parent perché vengono caricate per ultime (cascading).

Funzioni PHP: il file functions.php del child theme viene caricato PRIMA di quello del parent theme. Questo è un dettaglio cruciale: le funzioni del child theme sono disponibili prima di quelle del parent, permettendo di sovrascrivere funzioni "pluggable" (definite con if ( ! function_exists() ) nel parent).

Struttura del child theme nella dashboard WordPress

Creare un child theme: guida passo-passo

Creare un child theme è sorprendentemente semplice. Servono solo due file. Vediamo come fare:

Passo 1: creare la cartella del child theme

Nella directory wp-content/themes/ del tuo sito, crea una nuova cartella per il child theme. La convenzione di nomenclatura è usare il nome del tema parent seguito da "-child". Ad esempio, se il tema parent è "astra", la cartella sarà "astra-child".

Passo 2: creare il file style.css

All’interno della cartella del child theme, crea un file style.css con l’intestazione obbligatoria che dichiara la relazione con il parent theme. L’intestazione deve includere almeno il nome del tema (Theme Name) e il riferimento al tema parent (Template). Il campo Template deve corrispondere esattamente al nome della cartella del tema parent (case-sensitive).

Ecco un esempio di intestazione per un child theme di Astra:

/*
Theme Name: Astra Child
Template: astra
Version: 1.0
Description: Child theme personalizzato per Astra
Author: Il tuo nome
*/

Dopo l’intestazione, puoi aggiungere qualsiasi regola CSS personalizzata che sovrascriverà gli stili del parent theme.

Passo 3: creare il file functions.php

Crea un file functions.php nel child theme. La funzione più importante da inserire è l’enqueue degli stili del parent theme, per assicurarti che vengano caricati correttamente. Il metodo corretto nel 2026 è utilizzare la funzione wp_enqueue_style() con una dipendenza dallo stile del parent.

Il codice deve usare l’hook wp_enqueue_scripts e accodare lo stile del parent theme usando get_template_directory_uri() per il parent e get_stylesheet_directory_uri() per il child. Questo garantisce il caricamento corretto nell’ordine giusto: prima il parent, poi il child.

Passo 4: attivare il child theme

Vai su Aspetto → Temi nella dashboard di WordPress. Vedrai il tuo child theme nell’elenco dei temi disponibili. Clicca su "Attiva". Il sito utilizzerà ora il child theme, ereditando tutte le funzionalità del parent theme.

Personalizzazioni CSS nel child theme

La personalizzazione più comune tramite child theme riguarda gli stili CSS. Ecco come sovrascrivere gli stili del parent theme in modo efficace:

Usa l’ispettore del browser: prima di scrivere CSS personalizzato, usa gli strumenti di sviluppo del browser (F12 o Ctrl+Shift+I) per identificare gli elementi da modificare e i selettori CSS utilizzati dal parent theme. Copia il selettore e modificalo nel file style.css del child theme.

Specificità CSS: se una regola nel child theme non ha effetto, potrebbe avere una specificità inferiore rispetto alla regola del parent. Aumenta la specificità del selettore o, come ultima risorsa, usa !important. Ma è preferibile aumentare la specificità con selettori più specifici piuttosto che abusare di !important.

Custom Properties CSS: i temi moderni utilizzano variabili CSS (custom properties) per colori, font e spaziature. Sovrascrivendo queste variabili nel child theme, puoi cambiare l’intero schema colori con poche righe di codice. Ad esempio, sovrascrivendo le variabili nel selettore :root del child theme.

Organizza il CSS: anche nel child theme, organizza il CSS con commenti che separano le sezioni (header, navigation, content, sidebar, footer). Questo rende la manutenzione molto più semplice nel tempo.

Personalizzazione degli stili nel child theme

Override dei template file

Oltre al CSS, puoi sovrascrivere qualsiasi file template del parent theme. Questo è necessario quando vuoi modificare la struttura HTML di una pagina:

Come fare l’override: copia il file template dal parent theme nella stessa posizione relativa nel child theme. Ad esempio, per sovrascrivere header.php, copia wp-content/themes/astra/header.php in wp-content/themes/astra-child/header.php. Poi modifica la copia nel child theme.

File in sottocartelle: se il file è in una sottocartella (es. template-parts/header/site-header.php), ricrea la stessa struttura di cartelle nel child theme.

Modifiche minimali: quando fai l’override di un template file, copia l’intero file ma modifica solo le parti necessarie. Questo assicura che il resto del template funzioni correttamente. Tuttavia, c’è uno svantaggio: se il parent theme aggiorna quel template in una nuova versione, il tuo override non includerà le modifiche. Monitora il changelog del parent theme per verificare se i file che hai sovrascritto sono stati aggiornati.

File template di WordPress: puoi anche creare template personalizzati nel child theme che non esistono nel parent. Ad esempio, puoi creare un custom page template (template-landing.php) o un template per un custom post type specifico.

Personalizzazioni con functions.php

Il file functions.php del child theme è il luogo ideale per aggiungere funzionalità personalizzate senza usare un plugin. Ecco le personalizzazioni più comuni:

Registrare nuove aree widget: puoi aggiungere sidebar e aree widget personalizzate usando register_sidebar().

Aggiungere supporto per funzionalità del tema: abilita o disabilita funzionalità come post thumbnails, custom logo, formati di post e menu di navigazione.

Aggiungere shortcode personalizzati: crea shortcode per inserire contenuti dinamici negli articoli e nelle pagine.

Modificare le query di WordPress: usa l’hook pre_get_posts per modificare le query predefinite (es. cambiare il numero di post per pagina nelle pagine di archivio).

Aggiungere codice al header o al footer: usa gli hook wp_head e wp_footer per inserire script di analytics, pixel di tracciamento o meta tag personalizzati.

Rimuovere funzionalità del parent: usa remove_action() e remove_filter() per disabilitare comportamenti del parent theme. Ad esempio, rimuovere la data dagli articoli o nascondere la sidebar su determinate pagine.

Hook e filtri: personalizzazione avanzata

I temi WordPress ben sviluppati forniscono hook (action e filter) che permettono di modificare il comportamento senza sovrascrivere template interi. Gli hook sono punti di estensione dove puoi "agganciare" il tuo codice personalizzato.

Action hook: permettono di aggiungere codice in punti specifici dell’esecuzione. Ad esempio, wp_enqueue_scripts per aggiungere CSS e JS, init per registrare custom post types, widgets_init per registrare sidebar.

Filter hook: permettono di modificare dati prima che vengano visualizzati o salvati. Ad esempio, the_content per modificare il contenuto degli articoli, the_title per modificare i titoli, excerpt_length per cambiare la lunghezza dell’excerpt.

Temi come Astra, GeneratePress e Kadence offrono decine di hook personalizzati che permettono di aggiungere contenuto prima/dopo header, contenuto, sidebar, footer e molte altre aree senza toccare i template file. Consulta la documentazione del tuo tema per scoprire gli hook disponibili.

Child theme per WooCommerce

WooCommerce utilizza un proprio sistema di template per le pagine prodotto, carrello, checkout e account. Per personalizzare questi template:

Copia il file template dalla cartella wp-content/plugins/woocommerce/templates/ nella cartella wp-content/themes/tuo-child-theme/woocommerce/ mantenendo la stessa struttura di directory. Ad esempio, per personalizzare la pagina singolo prodotto, copia single-product.php in tuo-child-theme/woocommerce/single-product.php.

WooCommerce cerca automaticamente i template prima nel child theme, poi nel parent theme, e infine nella propria cartella templates. Questo sistema è specifico di WooCommerce e diverso dal meccanismo standard di WordPress.

Attenzione: WooCommerce aggiorna frequentemente i suoi template. Quando aggiorni WooCommerce, controlla se i template che hai sovrascritto sono stati modificati (WooCommerce mostra un avviso nella pagina Stato se rileva template sovrascritti obsoleti).

Gestione e organizzazione dei file del child theme

Plugin per creare child theme senza codice

Se non vuoi creare i file manualmente, esistono plugin che automatizzano il processo:

Child Theme Configurator: il plugin più popolare per creare child theme. Analizza il parent theme, genera automaticamente il child theme con l’enqueue corretto degli stili e offre un’interfaccia per personalizzare i CSS senza modificare i file direttamente.

WP Child Theme Generator: plugin semplice che crea un child theme con un clic, generando i file necessari e attivandolo automaticamente.

Questi plugin sono utili per i principianti, ma comprendere la struttura manuale del child theme è importante per personalizzazioni avanzate e per la risoluzione dei problemi.

Best practice per i child theme

Ecco le regole d’oro per lavorare con i child theme in modo professionale:

Non modificare mai il parent theme: ogni personalizzazione deve avvenire nel child theme. Se modifichi il parent, le modifiche verranno perse al prossimo aggiornamento.

Minimizza gli override dei template: sovrascrivere un template crea un punto di manutenzione. Ogni template sovrascritto deve essere verificato quando il parent theme si aggiorna. Preferisci hook e filtri agli override di file interi quando possibile.

Documenta le personalizzazioni: aggiungi commenti nel codice che spieghino perché hai fatto una modifica, non solo cosa hai modificato. Questo sarà prezioso per te stesso tra sei mesi o per chi dovrà mantenere il sito dopo di te.

Usa funzioni pluggable correttamente: se il parent theme definisce funzioni con if ( ! function_exists() ), puoi ridefinirle nel child theme. Ma ricorda che il functions.php del child viene caricato prima del parent: la tua definizione ha la precedenza.

Testa su staging: testa sempre le modifiche al child theme su un ambiente di staging prima di applicarle al sito in produzione.

Usa il versioning: utilizza Git o un altro sistema di versionamento per tracciare le modifiche al child theme. In caso di problemi, puoi tornare a una versione precedente.

Problemi comuni e soluzioni

Il child theme non appare nella lista temi: verifica che il campo "Template" in style.css corrisponda esattamente al nome della cartella del parent theme (case-sensitive).

Gli stili del parent non si caricano: l’enqueue degli stili nel functions.php non è configurato correttamente. Verifica che stai usando get_template_directory_uri() per il parent e get_stylesheet_uri() o get_stylesheet_directory_uri() per il child.

Le personalizzazioni CSS non hanno effetto: il CSS del parent ha una specificità maggiore. Aumenta la specificità del selettore nel child theme o verifica che il file CSS del child venga caricato dopo quello del parent.

Funzionalità del parent mancanti dopo l’attivazione del child: se il parent theme ha personalizzazioni nel Customizer (colori, layout, widget), potrebbe essere necessario riconfigurarle dopo aver attivato il child theme, poiché le impostazioni del Customizer sono legate al tema attivo.

Conclusioni

Il child theme è uno strumento indispensabile per chiunque voglia personalizzare un sito WordPress in modo sicuro e professionale. La creazione è semplice — bastano due file — ma le possibilità di personalizzazione sono praticamente illimitate. Dalla modifica di un colore alla riscrittura completa dei template, il child theme ti permette di adattare qualsiasi tema alle tue esigenze mantenendo la capacità di aggiornare il parent theme senza rischi.

Se stai lavorando a personalizzazioni WordPress e non stai usando un child theme, fermati ora e creane uno. Il tempo investito oggi ti risparmierà ore di frustrazione e potenziale perdita di lavoro in futuro.

Approfondisci e ricevi assistenza

Hai bisogno di assistenza professionale? Il team di G Tech Group è a tua disposizione per supporto tecnico e consulenza personalizzata.

Migliora il Tuo Sito WordPress

Scopri le nostre guide complete sugli altri plugin essenziali per WordPress:

#CMS #Guida #Sito Web #Tutorial #Wordpress