Hai personalizzato il tuo tema WordPress cambiando qualche riga di CSS o di PHP direttamente nei suoi file. Tutto perfetto, finché un giorno aggiorni il tema e le modifiche spariscono. Non è un difetto: l’aggiornamento sostituisce i file del tema con la versione nuova, e quindi cancella tutto quello che avevi cambiato. Il modo corretto per evitarlo si chiama tema child, o tema figlio.

Cos’è un tema child

Un tema child è un tema “leggero” che eredita tutto da un altro tema, detto parent (genitore), e contiene soltanto le tue modifiche. WordPress carica prima il tema child e, per tutto quello che lì non c’è, usa il tema genitore.

Il risultato:

  • il tema genitore si può aggiornare liberamente, ricevendo correzioni di sicurezza e miglioramenti;
  • le tue personalizzazioni restano nel tema child, che nessun aggiornamento tocca;
  • sai sempre esattamente cosa hai modificato, perché sta tutto in un posto solo.

Quando serve e quando no

Serve se modifichi i file del tema: fogli di stile, il file functions.php, i modelli delle pagine. Non serve se:

  • personalizzi il sito solo dal Customizer o dalle opzioni del tema, perché queste impostazioni sono salvate nel database;
  • aggiungi poche righe di CSS dal campo “CSS aggiuntivo” del Customizer;
  • usi un tema a blocchi e modifichi l’aspetto dall’Editor del sito: anche queste modifiche finiscono nel database;
  • il tema è sviluppato su misura per te e nessuno lo aggiornerà mai.

Molti temi commerciali e page builder forniscono un tema child già pronto da scaricare: se il tuo lo fa, usa quello.

Come creare un tema child a mano

Bastano una cartella e due file. Supponiamo che il tema genitore si chiami miotema e si trovi in wp-content/themes/miotema.

1. Crea la cartella

Collegati via FTP (guida: configurare FileZilla) oppure usa il file manager del pannello, entra in public_html/wp-content/themes/ e crea una cartella, ad esempio miotema-child.

2. Crea il file style.css

Dentro la cartella crea un file style.css con questa intestazione:

/*
Theme Name: Miotema Child
Template: miotema
Version: 1.0
*/

La riga fondamentale è Template: deve contenere esattamente il nome della cartella del tema genitore (non il nome commerciale del tema), rispettando maiuscole e minuscole. Sotto l’intestazione aggiungerai le tue regole CSS.

3. Crea il file functions.php

Serve per caricare correttamente i fogli di stile. Crea functions.php nella stessa cartella:

<?php
add_action( 'wp_enqueue_scripts', function () {
    wp_enqueue_style(
        'miotema-child',
        get_stylesheet_uri(),
        array(),
        wp_get_theme()->get( 'Version' )
    );
} );

Molti temi moderni caricano già da soli il proprio foglio di stile; se dopo l’attivazione il sito appare “senza grafica”, controlla la documentazione del tema genitore: alcuni richiedono di caricare esplicitamente anche il suo style.css.

4. Attiva il tema child

In WordPress vai in Aspetto › Temi: troverai il nuovo tema. Attivalo e controlla che il sito appaia come prima.

Attenzione: alcune impostazioni del Customizer (menu, widget, logo) sono legate al tema attivo. Passando al tema child potresti doverle riassegnare. Controlla menu e widget subito dopo l’attivazione. E prima di farlo, assicurati di avere un backup recente: con JetBackup da noi ce ne sono almeno due al giorno.

Come si usano le modifiche nel tema child

CSS

Scrivi le regole nel style.css del tema child: vengono caricate dopo quelle del genitore e quindi le sovrascrivono.

Funzioni PHP

Il functions.php del child non sostituisce quello del genitore: si aggiunge. Puoi quindi inserire le tue funzioni senza copiare l’intero file originale. Attenzione agli errori di sintassi: una virgola mancante qui provoca un errore critico. Se succede, leggi la guida all’errore critico di WordPress.

Modelli di pagina

Per modificare un modello (ad esempio single.php o footer.php), copialo dal tema genitore nella stessa posizione dentro il tema child e modifica la copia. WordPress userà la tua versione.

Tieni presente che i modelli copiati restano “congelati”: se il tema genitore li aggiorna, la tua copia non riceve le modifiche. Copia solo i file che devi davvero cambiare, e quando aggiorni il genitore controlla se i modelli che hai copiato sono stati modificati in modo importante.

Buone pratiche

  • Commenta le modifiche: una riga che spiega perché hai aggiunto una regola ti farà risparmiare tempo fra un anno.
  • Versiona il tema child: se lavori con uno sviluppatore, tenerlo in un repository Git è il modo più ordinato.
  • Non mettere nel tema funzioni che non riguardano l’aspetto: tipi di contenuto personalizzati, codici brevi usati negli articoli e integrazioni vanno meglio in un piccolo plugin, così non li perdi se un giorno cambi tema.
  • Prova le modifiche importanti su una copia del sito, non direttamente sul sito pubblico.

Il tema child e le prestazioni

Un tema child di per sé non rallenta il sito: aggiunge un foglio di stile, che il plugin di cache può unire agli altri. Con iWebLab Cache le pagine vengono servite dalla cache, quindi il numero di file del tema conta poco per i visitatori. Per il resto vale quanto spieghiamo in velocizzare WordPress.

Se hai dubbi su come impostare il tema child per il tuo tema specifico, apri un ticket dall’area clienti indicando il nome del tema.

Altri articoli su WordPress, WooCommerce e CMS

Parliamone

Un hosting che ti spiega le cose, e poi le fa

Questi articoli nascono dalle domande dei nostri clienti. Se vuoi un hosting dove dietro ogni risposta c’è un tecnico vero, parliamone.

  • 4,9 su 5 su Trustpilot264 recensioni, il 96% a cinque stelle
  • Risponde un tecnicoIn italiano, da chi gestisce i server
  • Il trasloco lo facciamo noiSito, database e posta, controllati prima di spostare i DNS