{"id":25630,"date":"2026-01-12T10:00:00","date_gmt":"2026-01-12T09:00:00","guid":{"rendered":"https:\/\/soccorsowp.it\/blog\/creare-tema-child-wordpress-guida-pratica\/"},"modified":"2026-01-12T10:00:00","modified_gmt":"2026-01-12T09:00:00","slug":"creare-tema-child-wordpress-guida-pratica","status":"publish","type":"post","link":"https:\/\/soccorsowp.it\/blog\/creare-tema-child-wordpress-guida-pratica\/","title":{"rendered":"Come creare un tema child WordPress: guida pratica per personalizzare senza rischi"},"content":{"rendered":"<h1>Come creare un tema child WordPress: guida pratica per personalizzare senza rischi<\/h1>\n<p>Hai mai perso tutte le personalizzazioni del tuo tema WordPress dopo un aggiornamento? \u00c8 una delle situazioni pi\u00f9 frustranti per chi gestisce un sito. La soluzione esiste e si chiama <strong>tema child<\/strong> (o tema figlio): un tema che eredita tutto dal tema principale ma ti permette di aggiungere modifiche che non verranno mai sovrascritte dagli aggiornamenti. In questa guida ti spiego come <strong>creare un tema child WordPress<\/strong> da zero, passo dopo passo, anche se non hai esperienza di sviluppo.<\/p>\n<h2>Cos&#8217;\u00e8 un tema child e perch\u00e9 ti serve<\/h2>\n<p>Un <strong>tema child<\/strong> \u00e8 un tema WordPress che funziona in coppia con un tema genitore (parent theme). Il child theme non contiene tutto il codice del tema: eredita automaticamente stili, template e funzionalit\u00e0 dal genitore. Tu aggiungi nel child theme solo le modifiche che vuoi apportare.<\/p>\n<p>Perch\u00e9 \u00e8 importante:<\/p>\n<ul>\n<li><strong>Protegge le personalizzazioni:<\/strong> quando aggiorni il tema genitore, i file del child theme restano intatti. Le tue modifiche CSS, i template personalizzati e le funzioni PHP non vengono toccati.<\/li>\n<li><strong>Permette modifiche sicure:<\/strong> puoi sperimentare senza rischiare di rompere il tema principale. Se qualcosa va storto, basta eliminare il file dal child theme.<\/li>\n<li><strong>Best practice riconosciuta:<\/strong> \u00e8 il metodo raccomandato ufficialmente da WordPress per qualsiasi personalizzazione del tema.<\/li>\n<\/ul>\n<p>Senza un child theme, hai due opzioni poco appetibili: modificare direttamente il tema genitore (e perdere tutto al prossimo aggiornamento) oppure non aggiornare mai il tema (e restare esposto a vulnerabilit\u00e0 di sicurezza). Il child theme elimina questo dilemma. Creare un child theme richiede meno di 5 minuti e ti fa risparmiare ore di lavoro perso nel lungo periodo.<\/p>\n<h2>Passo 1: crea la cartella del tema child<\/h2>\n<p>Un tema child richiede al minimo solo <strong>due file<\/strong>. Collegati al server via FTP o dal file manager del tuo hosting e vai nella cartella <span style=\"font-family: monospace\">wp-content\/themes\/<\/span>. Crea una nuova cartella con un nome descrittivo, ad esempio:<\/p>\n<ul>\n<li>Se il tema genitore si chiama <span style=\"font-family: monospace\">flavor<\/span>, crea <span style=\"font-family: monospace\">flavor-child<\/span><\/li>\n<li>Se il tema genitore \u00e8 <span style=\"font-family: monospace\">flavflavor<\/span>, crea <span style=\"font-family: monospace\">flavor-child<\/span><\/li>\n<\/ul>\n<p>La convenzione \u00e8 usare il nome del tema genitore seguito da <span style=\"font-family: monospace\">-child<\/span>.<\/p>\n<h2>Passo 2: crea il file style.css<\/h2>\n<p>All&#8217;interno della cartella del child theme, crea un file <span style=\"font-family: monospace\">style.css<\/span> con questa intestazione:<\/p>\n<pre>\/*\nTheme Name: Flavor Child\nTheme URI: https:\/\/tuosito.it\nDescription: Tema child personalizzato per Flavor\nAuthor: Il tuo nome\nAuthor URI: https:\/\/tuosito.it\nTemplate: flavor\nVersion: 1.0.0\n*\/<\/pre>\n<p>La riga fondamentale \u00e8 <strong>Template<\/strong>: deve corrispondere esattamente al nome della cartella del tema genitore (attenzione alle maiuscole). \u00c8 questo che dice a WordPress quale tema usare come base. Sotto l&#8217;intestazione puoi aggiungere il tuo CSS personalizzato:<\/p>\n<pre>\/* Le tue personalizzazioni CSS *\/\nh1 {\n    color: #333333;\n}\n.site-header {\n    background-color: #f5f5f5;\n}<\/pre>\n<h2>Passo 3: crea il file functions.php<\/h2>\n<p>Il secondo file obbligatorio \u00e8 <span style=\"font-family: monospace\">functions.php<\/span>. Il suo scopo principale \u00e8 <strong>caricare correttamente gli stili del tema genitore<\/strong>:<\/p>\n<pre>&lt;?php\n\/\/ Carica gli stili del tema genitore e del child theme\nfunction flavor_child_enqueue_styles() {\n    wp_enqueue_style('parent-style',\n        get_template_directory_uri() . '\/style.css');\n    wp_enqueue_style('child-style',\n        get_stylesheet_directory_uri() . '\/style.css',\n        array('parent-style'));\n}\nadd_action('wp_enqueue_scripts',\n    'flavor_child_enqueue_styles');<\/pre>\n<p>Questo codice carica prima il CSS del tema genitore e poi il CSS del child theme, permettendo alle tue regole CSS di sovrascrivere quelle del genitore. \u00c8 importante usare <span style=\"font-family: monospace\">wp_enqueue_style()<\/span> anzich\u00e9 <span style=\"font-family: monospace\">@import<\/span> nel CSS: \u00e8 pi\u00f9 performante e il metodo raccomandato da WordPress.<\/p>\n<h2>Passo 4: attiva il tema child<\/h2>\n<p>Ora che hai i due file, il child theme \u00e8 pronto. Vai nel pannello WordPress in <em>Aspetto \u2192 Temi<\/em>: dovresti vedere il tuo child theme nella lista. Clicca <strong>&#8220;Attiva&#8221;<\/strong>. Il sito manterr\u00e0 esattamente lo stesso aspetto di prima, perch\u00e9 il child theme eredita tutto dal genitore. Da questo momento in poi, ogni personalizzazione andr\u00e0 fatta nel child theme.<\/p>\n<p>Se il child theme non appare nella lista, verifica che:<\/p>\n<ul>\n<li>Il valore di <strong>Template<\/strong> nel file style.css corrisponda esattamente al nome della cartella del tema genitore.<\/li>\n<li>Il file style.css abbia l&#8217;intestazione formattata correttamente (senza spazi iniziali o BOM UTF-8).<\/li>\n<li>La cartella sia nella posizione giusta: <span style=\"font-family: monospace\">wp-content\/themes\/nome-child\/<\/span>.<\/li>\n<\/ul>\n<h2>Come personalizzare i template del tema<\/h2>\n<p>Il child theme non serve solo per il CSS. Puoi <strong>sovrascrivere qualsiasi file template<\/strong> del tema genitore semplicemente copiandolo nella cartella del child theme con lo stesso nome e la stessa struttura di cartelle.<\/p>\n<p>Esempio pratico: vuoi modificare il layout dell&#8217;header.<\/p>\n<ol>\n<li>Trova il file <span style=\"font-family: monospace\">header.php<\/span> nella cartella del tema genitore.<\/li>\n<li>Copialo nella cartella del child theme: <span style=\"font-family: monospace\">flavor-child\/header.php<\/span>.<\/li>\n<li>Modifica la copia nel child theme. WordPress user\u00e0 automaticamente la tua versione al posto dell&#8217;originale.<\/li>\n<\/ol>\n<p>Questo funziona per qualsiasi file template: <span style=\"font-family: monospace\">footer.php<\/span>, <span style=\"font-family: monospace\">single.php<\/span>, <span style=\"font-family: monospace\">page.php<\/span>, <span style=\"font-family: monospace\">archive.php<\/span>, eccetera. Se un template si trova in una sottocartella nel tema genitore (es. <span style=\"font-family: monospace\">template-parts\/content.php<\/span>), ricrea la stessa struttura di cartelle nel child theme.<\/p>\n<h2>Aggiungere funzionalit\u00e0 PHP personalizzate<\/h2>\n<p>Il file <span style=\"font-family: monospace\">functions.php<\/span> del child theme viene caricato <strong>prima<\/strong> di quello del genitore. Questo ti permette di aggiungere hook, filtri e funzioni personalizzate. Alcuni esempi pratici:<\/p>\n<h3>Aggiungere un Google Analytics<\/h3>\n<pre>function child_add_analytics() {\n    echo '&lt;!-- Google tag (gtag.js) --&gt;';\n    echo '&lt;script async src=\"...\"&gt;';\n    \/\/ Il tuo codice di tracciamento\n}\nadd_action('wp_head', 'child_add_analytics');<\/pre>\n<h3>Rimuovere un elemento del genitore<\/h3>\n<pre>\/\/ Rimuovi la sidebar dalla pagina prodotto\nfunction child_remove_sidebar() {\n    if (is_product()) {\n        remove_action('flavor_sidebar',\n            'flavor_get_sidebar');\n    }\n}\nadd_action('wp', 'child_remove_sidebar');<\/pre>\n<h3>Aggiungere dimensioni immagine personalizzate<\/h3>\n<pre>function child_custom_image_sizes() {\n    add_image_size('card-thumb', 800, 450, true);\n}\nadd_action('after_setup_theme',\n    'child_custom_image_sizes');<\/pre>\n<p>Ogni funzione che aggiungi nel <span style=\"font-family: monospace\">functions.php<\/span> del child theme sopravviver\u00e0 agli aggiornamenti del tema genitore.<\/p>\n<h2>Errori comuni da evitare con i temi child<\/h2>\n<ul>\n<li><strong>Non copiare TUTTI i file del genitore nel child:<\/strong> copia solo quelli che devi modificare. Se copi tutto, le future correzioni nel tema genitore non avranno effetto perch\u00e9 WordPress user\u00e0 sempre la versione del child.<\/li>\n<li><strong>Non modificare il tema genitore:<\/strong> il child theme esiste proprio per questo. Se modifichi anche solo una riga nel genitore, la perderai all&#8217;aggiornamento.<\/li>\n<li><strong>Attenzione al nome della funzione:<\/strong> se il functions.php del genitore definisce funzioni con <span style=\"font-family: monospace\">if (!function_exists())<\/span>, puoi sovrascriverle nel child. Altrimenti, otterrai un errore PHP per funzione duplicata.<\/li>\n<li><strong>Testa dopo ogni aggiornamento del genitore:<\/strong> un aggiornamento del tema genitore potrebbe cambiare la struttura HTML dei template, rendendo il tuo CSS personalizzato inefficace. Verifica sempre il sito dopo l&#8217;aggiornamento.<\/li>\n<\/ul>\n<h2>Plugin alternativi per creare un child theme senza codice<\/h2>\n<p>Se preferisci non creare i file manualmente, esistono plugin che automatizzano il processo:<\/p>\n<ul>\n<li><strong>Child Theme Configurator:<\/strong> crea il child theme con un&#8217;interfaccia grafica, analizza il tema genitore e genera automaticamente i file necessari.<\/li>\n<li><strong>WP Child Theme Generator:<\/strong> crea il child theme con un clic e permette di personalizzare le opzioni direttamente dal pannello.<\/li>\n<\/ul>\n<p>Questi plugin sono utili per iniziare, ma per personalizzazioni avanzate dovrai comunque modificare i file manualmente. Un consiglio: dopo aver creato il child theme con un plugin, puoi disinstallare il plugin stesso perch\u00e9 il child theme continuer\u00e0 a funzionare indipendentemente.<\/p>\n<h2>Hai bisogno di personalizzazioni avanzate? Ti aiutiamo noi<\/h2>\n<p>Se hai bisogno di modifiche complesse al tema, integrazioni personalizzate o vuoi creare un child theme per un progetto articolato, il team di <strong>SoccorsoWP<\/strong> pu\u00f2 assisterti. Creiamo child theme su misura, ottimizziamo il codice e ci assicuriamo che le personalizzazioni funzionino perfettamente con gli aggiornamenti futuri del tema genitore. <a href=\"https:\/\/soccorsowp.it\/ticket\/\">Apri un ticket<\/a> e affida le personalizzazioni a chi le fa ogni giorno.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Come creare un tema child WordPress: guida pratica per personalizzare senza rischi Hai mai perso tutte le personalizzazioni del tuo tema WordPress dopo un aggiornamento?&#8230;<\/p>\n","protected":false},"author":1,"featured_media":25631,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"Come creare un tema child WordPress: guida pratica per personalizzare senza rischi","_seopress_titles_desc":"Impara a creare un tema child WordPress in 5 minuti: proteggi le personalizzazioni CSS, template e funzioni PHP dagli aggiornamenti del tema genitore.","_seopress_robots_index":"","footnotes":""},"categories":[742],"tags":[],"class_list":{"0":"post-25630","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-temi"},"_links":{"self":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts\/25630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/comments?post=25630"}],"version-history":[{"count":0,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts\/25630\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/media\/25631"}],"wp:attachment":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/media?parent=25630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/categories?post=25630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/tags?post=25630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}