Guida di risoluzione

Come installare un Child Theme WordPress (passo dopo passo)

20 maggio 2026

Un child theme di WordPress è un tema che eredita lo styling e le funzionalità di un altro tema, chiamato tema parent. Attivare un child theme dice a WordPress di usare il parent per tutto tranne i file che il child sovrascrive. Tutto il senso: quando il tema parent viene aggiornato dal suo sviluppatore (cosa che succede regolarmente, spesso con fix di sicurezza), le tue personalizzazioni sopravvivono intatte. Senza un child theme, ogni personalizzazione che fai a un tema viene cancellata al prossimo aggiornamento. Con uno, le tue modifiche vivono in una cartella separata che gli aggiornamenti non toccano.

Perché ho bisogno di un child theme nel 2026?

Tre motivi che non sono cambiati in quindici anni:

  • Sopravvivere agli aggiornamenti del tema parent. Gli sviluppatori di temi rilasciano aggiornamenti mensilmente o più spesso. Ogni aggiornamento sovrascrive ogni file nella cartella del tema parent. Se hai modificato header.php o style.css direttamente, le tue modifiche se ne sono andate. Un child theme ha la sua cartella che gli aggiornamenti non toccano mai.
  • Sovrascrivere solo file mirati. Un child theme può sostituire selettivamente qualsiasi file dal parent. Vuoi un footer.php personalizzato? Mettilo nel child theme. Vuoi lo stesso footer.php del parent ma con una modifica CSS? Aggiungi solo il CSS allo style.css del child e lascia footer.php in pace.
  • Aggiungere PHP personalizzato senza forkare il tema. Il functions.php del child theme si carica accanto a quello del parent. Aggiungi filtri, custom post type, azioni rimosse, o qualsiasi PHP senza toccare il codice del parent.

L'approccio "tanto modifico il parent" si rompe la prima volta che il tema si auto-aggiorna, cosa che su un sito WordPress tipico succede in poche settimane. Usa un child theme.

Quando NON ho bisogno di un child theme?

Tre scenari in cui un child theme è lo strumento sbagliato:

  • Se personalizzi solo attraverso il Customizer o il Site Editor. Cambi di colore, scelte di font e impostazioni simili fatte via Aspetto, Personalizza (Classico) o il Site Editor (temi Block) sono memorizzati nel database, non nei file del tema. Sopravvivono agli aggiornamenti senza un child theme.
  • Se aggiungi solo CSS personalizzato. WordPress ha un pannello integrato "CSS Aggiuntivo" nel Customizer. Piccole modifiche CSS vivono lì e persistono attraverso gli aggiornamenti. Un child theme è eccessivo per aggiungere due regole CSS.
  • Se usi un tema Block (FSE) e personalizzi solo template. I temi Full Site Editing memorizzano le personalizzazioni dei template nel database, accessibili via Aspetto, Editor. Il bisogno di un child theme è molto più piccolo. I temi Block possono ancora beneficiare di un child theme per PHP personalizzato o override di theme.json, ma il caso comune di "voglio spostare il logo e cambiare il testo del footer" non ne richiede più uno.

Se ti ritrovi a modificare file PHP, file di template, o a voler aggiungere più di poche righe di CSS, hai bisogno di un child theme. Per tutto il resto nel 2026, il Customizer o il Site Editor sono sufficienti.

Metodo 1: installare un child theme manualmente (5 minuti)

Il child theme minimo è due file in una cartella. Passo dopo passo:

Passo 1: crea la cartella del child theme

Connettiti via SFTP (o il file manager nel tuo pannello hosting) e naviga a /wp-content/themes/. Vedrai cartelle per ogni tema installato, come twentytwentyfour/ o astra/. Crea una nuova cartella accanto a loro. Convenzione di naming: nome del parent più -child. Se il tuo tema parent è Astra, nomina la cartella astra-child.

Passo 2: crea style.css con l'header richiesto

Dentro la tua nuova cartella astra-child, crea un file chiamato style.css. Aprilo in un editor di testo e aggiungi questo blocco di commento header:

/*
Theme Name: Astra Child
Theme URI: https://tuosito.com
Description: Child theme per Astra
Author: Il Tuo Nome
Author URI: https://tuosito.com
Template: astra
Version: 1.0.0
Text Domain: astra-child
*/

La riga Template è l'unica che deve corrispondere esattamente: deve essere il nome della cartella del tema parent (case-sensitive). Le altre righe possono dire quello che vuoi; appaiono in Aspetto, Temi.

Passo 3: crea functions.php per fare enqueue degli stili parent

Nella stessa cartella astra-child, crea functions.php:

<?php
add_action('wp_enqueue_scripts', function () {
    wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
    wp_enqueue_style('child-style', get_stylesheet_uri(), ['parent-style']);
});

Questo assicura che lo stylesheet del tema parent venga caricato per primo, poi quello del child, così le tue personalizzazioni sovrascrivono il parent. Senza questo, il style.css del child theme è vuoto e il sito si carica senza stile. Molti vecchi tutorial raccomandano ancora di usare @import url('../astra/style.css'); nello style.css del child. Non usare l'approccio @import nel 2026. È lento (forza una seconda richiesta HTTP prima che qualsiasi CSS venga analizzato), non è più raccomandato dal codex WordPress, e l'approccio enqueue sopra è lo standard moderno.

Passo 4: attiva il child theme

Vai a Aspetto, Temi nell'admin di WordPress. Vedrai il tuo nuovo child theme elencato (potrebbe mostrare una miniatura placeholder). Clicca Attiva. Il tuo sito dovrebbe apparire identico a prima — stessi font, stesso layout, stessi colori — perché il child eredita tutto dal parent.

Se il sito appare senza stile, l'enqueue in functions.php è sbagliato. Ricontrolla che la riga Template: in style.css corrisponda esattamente al nome della cartella parent.

Metodo 2: usa un plugin per child theme (zero coding)

Per utenti che preferirebbero non toccare l'SFTP, i plugin automatizzano la creazione del child theme. Due scelte affidabili nel 2026:

  • Child Theme Configurator. Gratis, attivamente mantenuto, l'opzione più popolare. Si installa in due click, crea il child theme da qualsiasi parent attivo, ti permette di copiare file parent nel child per modificarli attraverso l'UI admin. La scelta pragmatica per la maggior parte degli utenti.
  • Generate Child Theme. Plugin più nuovo focalizzato specificamente sui temi Block. Utile se stai usando un tema Full Site Editing come Twenty Twenty-Four dove i pattern sono diversi.

Passi dell'approccio con plugin:

  1. Installa e attiva il plugin.
  2. Vai a Strumenti, Child Themes (Child Theme Configurator) o il suo equivalente.
  3. Seleziona il tema parent.
  4. Clicca "Crea nuovo child theme".
  5. Il plugin genera la cartella, style.css e functions.php correttamente. Vai a Aspetto, Temi e attiva.

Il plugin può essere disattivato dopo aver creato il child theme. Il child theme stesso non dipende dal plugin.

Come personalizzo il child theme una volta attivo?

Tre categorie di personalizzazione:

Personalizzazioni CSS

Aggiungi regole CSS allo style.css del child theme, sotto il commento header. Il CSS del child si carica dopo quello del parent, quindi le tue regole sovrascrivono a meno che il parent usi !important o selettori di maggiore specificità.

/* In astra-child/style.css */
.site-title {
    font-family: Georgia, serif;
    color: #2c3e50;
}

.entry-content a {
    text-decoration: underline;
}

Override di template

Per personalizzare un file di template (header, footer, layout single post, ecc.), copia il file dal tema parent nel child theme allo stesso percorso. WordPress allora userà la versione del child invece di quella del parent.

Esempio: personalizzare footer.php:

  1. Copia wp-content/themes/astra/footer.php in wp-content/themes/astra-child/footer.php.
  2. Modifica la copia del child.
  3. Salva. Il prossimo caricamento di pagina usa la tua versione.

I temi Block sono diversi: invece di file di template PHP, usano file HTML in una cartella templates/, e theme.json per gli stili globali. Il meccanismo di override è lo stesso; copia il file dal parent nel child allo stesso percorso relativo.

Personalizzazioni PHP

Aggiungi filtri, azioni o codice custom al functions.php del child — mai a quello del parent. Il functions.php del child si carica prima di quello del parent, quindi può registrare filtri che il parent successivamente controlla.

// In astra-child/functions.php

// Cambia l'URL del logo di login di WordPress
add_filter('login_headerurl', function () {
    return home_url();
});

// Disabilita le emoji di WordPress
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');

Come sposto le mie impostazioni del Customizer nel child theme?

Punto dolente comune: hai impostato colori, font e widget nel Customizer sotto il tema parent. Attivare il child theme sembra resettarli.

La verità: le impostazioni del Customizer sono memorizzate per tema. Ogni tema (parent e child sono "temi" diversi per WordPress) ha le sue impostazioni. Per preservare le tue impostazioni:

  1. Sotto il tema parent, vai a Aspetto, Personalizza, clicca l'icona ingranaggio e "Esporta" (alcuni temi lo forniscono; non tutti). O usa un plugin come Customizer Export/Import.
  2. Attiva il child theme.
  3. Torna al Customizer e importa il file.

Se il tuo tema non supporta l'export del Customizer, l'alternativa è configurare manualmente le stesse impostazioni sotto il child theme. Per i widget, WordPress 4.2+ fornisce un workflow "Widget Importer & Exporter" via il menu Strumenti o via plugin come Widget Importer Exporter.

E i temi Block (Full Site Editing)?

Per i temi Block (Twenty Twenty-Two in poi, e i temi moderni costruiti su FSE), la struttura del child theme è leggermente diversa. I due file minimi diventano:

  • style.css con lo stesso blocco header, ma Template: cartella-tema-parent che fa riferimento al tema parent Block.
  • theme.json nella cartella del child. Questo file sovrascrive il theme.json del parent. Includi solo le impostazioni che vuoi cambiare; i valori del parent sono usati per tutto il resto.

Puoi anche sovrascrivere template copiando i file HTML di template del parent da templates/ e parts/ nel child theme allo stesso percorso.

Il Full Site Editor nell'admin di WordPress può leggere gli override del child theme e ti permette di personalizzare i template visivamente. Le personalizzazioni fatte nell'editor sono memorizzate nel database e sopravvivono agli aggiornamenti del tema; hai bisogno del child theme solo per le cose che non puoi configurare attraverso l'editor (come PHP personalizzato in functions.php).

Errori comuni nell'installare un child theme

  • Nome Template: sbagliato in style.css. Se il valore non corrisponde esattamente al nome della cartella del tema parent (case-sensitive), WordPress tratta il child come un tema rotto. Il nome della cartella, non il nome di visualizzazione, è ciò che conta.
  • Dimenticare <?php in cima a functions.php. Il file viene silenziosamente trattato come testo, gli stili parent non vengono fatti enqueue, e il sito si carica senza stile. Inizia sempre i file PHP con <?php.
  • Usare @import in style.css per caricare il CSS parent. Funziona ma lento e sconsigliato. Usa l'approccio wp_enqueue_style in functions.php.
  • Copiare ogni file parent nel child "per sicurezza". Non farlo. Copia solo i file che vuoi realmente sovrascrivere. I file nel child che corrispondono al parent useranno la versione del child; i file solo nel parent useranno la versione del parent. La copia in massa annulla il beneficio di manutenibilità di un child theme.
  • Modificare il child theme su un sito live senza staging. Una riga sbagliata in functions.php manda il sito in schermo bianco. Per modifiche PHP non triviali, usa un ambiente di staging o almeno un plugin code-snippet che cattura gli errori PHP prima del salvataggio.
  • Nominare la cartella del child theme con spazi. Resta su lettere minuscole e trattini. Spazi e caratteri speciali rompono il riferimento Template: su alcuni server.
  • Cambiare tema parent senza eliminare il child. Un child theme fa riferimento al suo parent per nome. Se passi a un tema parent diverso senza aggiornare il child, il child diventa rotto. O elimina il child o aggiorna la sua riga Template:.

Come aggiorno un tema parent senza rompere il child?

Questo è tutto il senso di un child theme: gli aggiornamenti parent non dovrebbero romperlo. Tre scenari:

  • Aggiornamenti normali. Clicca "Aggiorna" nell'admin. La cartella del tema parent viene sostituita; la cartella del child non viene toccata. Verifica che il sito appaia ancora giusto.
  • Aggiornamenti di versione maggiore (1.x a 2.x). A volte i template cambiano significativamente. Se il tuo child theme sovrascrive template, l'override potrebbe ora fare riferimento a funzioni o hook che non esistono più. Controlla il changelog del tema parent prima degli aggiornamenti maggiori. Testa su staging.
  • Tema parent abbandonato. Se il parent smette di ricevere aggiornamenti (fix di sicurezza), il tuo child è bloccato su un tema vulnerabile. La migrazione è verso un tema parent mantenuto. Il child theme rende questo più facile perché la maggior parte del tuo CSS e PHP personalizzato può essere riutilizzato; solo gli override di template devono essere rifatti.

Dove trovo quali file del tema sovrascrivere?

La gerarchia di template di WordPress documenta quale file viene caricato per quale tipo di contenuto. Comuni:

  • header.php — cima di ogni pagina
  • footer.php — fondo di ogni pagina
  • single.php — layout single blog post
  • page.php — layout pagina singola
  • archive.php — archivi categoria/tag/autore
  • functions.php — personalizzazioni PHP
  • style.css — CSS

Per i temi Block, gli equivalenti vivono in templates/ come file .html e in theme.json per lo styling.

Cosa controlla InspectWP

InspectWP rileva se un tema è un child theme via il campo Template: in style.css. La sezione WordPress del report elenca sia il tema parent che il child theme, con versioni e date dell'ultimo aggiornamento. Un sito che esegue un child theme con un parent non aggiornato da oltre un anno viene segnalato perché il parent probabilmente ha vulnerabilità non patchate. Un sito che esegue un child theme obsoleto su un parent aggiornato è informativo; solitamente significa che lo sviluppatore che ha configurato il sito ha smesso di mantenere il child ma il parent continua a ricevere fix di sicurezza attraverso il manutentore del parent. La raccomandazione pragmatica è mantenere entrambi aggiornati, documentare le personalizzazioni del child theme nel suo header style.css, e preferire i child theme alle modifiche dirette anche su setup di hosting gestito dove gli aggiornamenti automatici del tema sono comuni.

Controlla subito il tuo sito WordPress

InspectWP analizza il tuo sito WordPress per problemi di sicurezza, problemi SEO, conformità GDPR e prestazioni — gratuitamente.

Analizza gratis il tuo sito