Vai al contenuto
BeoHosting
BeoHosting
WordPress

Guida ai temi child di WordPress

BeoHosting Team··10 min read di lettura
Guida ai temi child di WordPress

Cos'è un tema child di WordPress

Un tema child in WordPress è un tema che eredita funzionalità, stili e file di template da un altro tema chiamato parent. Un tema child ti permette di modificare il design e le funzionalità di un sito senza alterare direttamente i file del tema parent. Perché è importante? Perché quando aggiorni il tema parent, tutte le modifiche apportate ai suoi file vengono cancellate e riportate ai valori predefiniti.

Immagina questo scenario: hai acquistato un tema WordPress premium, hai personalizzato gli stili CSS, aggiunto funzioni personalizzate in functions.php e modificato i file di template. Un mese dopo, l'autore del tema rilascia un aggiornamento con patch di sicurezza. Aggiorni il tema e - tutte le tue personalizzazioni spariscono. Devi rifare tutto da capo. Con un tema child, questo problema non esiste perché le tue modifiche sono conservate in file separati che non vengono toccati durante gli aggiornamenti.

Perché usare un tema child

Ci sono diverse ragioni fondamentali per usare un tema child invece di modificare direttamente il tema parent.

Aggiornamenti sicuri

Questa è la ragione principale. I temi WordPress vengono aggiornati regolarmente con patch di sicurezza, correzioni di bug e nuove funzionalità. Senza un tema child, hai due opzioni entrambe negative: aggiornare il tema e perdere tutte le personalizzazioni, oppure non aggiornarlo ed esporre il sito a vulnerabilità di sicurezza. Con un tema child, aggiorni il tema parent senza preoccupazioni perché le tue modifiche sono al sicuro nel tema child.

Organizzazione del codice

Un tema child separa chiaramente le tue personalizzazioni dal codice del tema originale. Quando guardi i file del tema child, vedi esattamente cosa hai modificato rispetto al design originale. Questo facilita il debugging, la documentazione e la collaborazione con altri sviluppatori. Se qualcosa non funziona correttamente, puoi semplicemente eliminare il file dal tema child e tornare al comportamento originale del tema parent.

Apprendimento e sperimentazione

Un tema child è uno spazio sicuro per imparare lo sviluppo WordPress. Puoi sperimentare con CSS, PHP e file di template senza il timore di rompere il sito. Se qualcosa va storto, disattivi il tema child e il sito torna all'aspetto originale con il tema parent. Questo è particolarmente utile per i principianti che stanno imparando lo sviluppo WordPress.

Creare un tema child passo dopo passo

Creare un tema child è un processo semplice che richiede solo due file. Ecco una guida dettagliata.

Passo 1: creare la directory

Nella directory wp-content/themes/ crea una nuova cartella per il tema child. Accedi ai file tramite il File Manager di cPanel o via FTP. La convenzione di denominazione è nome-tema-parent-child. Ad esempio, se usi il tema "flavor", crea la cartella "flavor-child". Non è obbligatorio, ma facilita l'identificazione del tema child. Il nome della cartella deve essere univoco tra tutti i temi del sito.

Passo 2: creare il file style.css

Crea un file style.css nella directory del tema child con il seguente commento di intestazione: Theme Name (obbligatorio - il nome univoco del tuo tema child), Template (obbligatorio - il nome della directory del tema parent, esattamente come è nominata la cartella), Version, Description e Author. Il campo Template è cruciale - deve corrispondere esattamente al nome della cartella del tema parent. Se il tema parent si trova nella cartella flavor, Template deve essere flavor. Un errore in questo campo significa che il tema child non funzionerà.

Passo 3: creare il file functions.php

Crea functions.php nel tema child e aggiungi una funzione che carica gli stili del tema parent. Questo è necessario affinché il tema child erediti il design del tema parent. Usa wp_enqueue_style() all'interno di una funzione agganciata all'azione wp_enqueue_scripts. Carica parent-style con get_template_directory_uri() per il percorso del tema parent e child-style con get_stylesheet_directory_uri() per il percorso del tema child, indicando parent-style come dipendenza in modo che venga caricato per primo.

Passo 4: attivazione

Vai nel pannello di amministrazione di WordPress, Aspetto → Temi, e attiva il tuo tema child. Dovresti vedere un sito identico a prima - tutti gli stili e le funzionalità del tema parent. Se il sito appare completamente diverso (senza stili), verifica che functions.php carichi correttamente gli stili del parent e che l'intestazione Template in style.css sia corretta.

Personalizzare il tema child

Ora che hai un tema child funzionante, puoi iniziare con le personalizzazioni.

Personalizzazioni CSS

Aggiungi le tue modifiche CSS al file style.css del tema child. Poiché il tema child viene caricato DOPO il tema parent, i tuoi stili hanno la priorità (il principio della cascata CSS). Ad esempio, se vuoi cambiare il colore del titolo, aggiungi la regola nello style.css del child e questa sovrascriverà lo stile del tema parent. Usa i Developer Tools del browser (F12) per individuare i selettori CSS esatti da modificare.

Override dei template

WordPress usa una gerarchia di template per determinare quale file utilizzare per la visualizzazione di una pagina. Un tema child può sovrascrivere qualsiasi file di template del tema parent creando un file con lo stesso nome. Ad esempio, se vuoi modificare l'aspetto di un singolo articolo del blog, copia single.php dal tema parent al tema child e modificalo. WordPress userà automaticamente la versione del tema child. IMPORTANTE: copia l'intero file, non solo la parte che stai modificando, perché il file del tema child sostituisce completamente la versione del parent.

Specificità di functions.php

A differenza dei file di template, dove il tema child sostituisce il parent, functions.php del tema child viene caricato PRIMA di functions.php del tema parent. Ciò significa che entrambi i file sono attivi contemporaneamente. Questo è utile perché puoi aggiungere nuove funzioni senza copiare l'intero functions.php del tema parent. Ma fai attenzione - se definisci una funzione con lo stesso nome di una presente nel parent (e il parent usa un controllo if(!function_exists())), la tua versione avrà la priorità.

Aggiungere nuovi file di template

Oltre a sovrascrivere i file di template esistenti, un tema child può aggiungerne di completamente nuovi. Ad esempio, puoi creare un template di pagina personalizzato che non esiste nel tema parent. Aggiungi un file PHP con un commento Template Name in cima e sarà disponibile come opzione nell'editor di WordPress quando crei una nuova pagina. È un modo potente per aggiungere layout specifici per landing page, pagine portfolio o altre esigenze personalizzate.

Tecniche avanzate

Rimuovere azioni e filtri del parent

A volte vuoi rimuovere una funzionalità del tema parent invece di aggiungerne di nuove. Usa remove_action() e remove_filter() nel functions.php del tema child per rimuovere gli hook che il tema parent ha registrato. Questo richiede di conoscere il nome esatto della funzione, l'hook e la priorità del tema parent. Esamina il codice sorgente del tema parent per trovare queste informazioni. Nota: remove_action() deve essere chiamato dopo che l'azione è stata registrata - usa l'hook after_setup_theme con una priorità successiva.

Override dei template di WooCommerce

Se usi WooCommerce, il tema child può sovrascrivere i file di template di WooCommerce creando una directory woocommerce/ all'interno del tema child. Ad esempio, per personalizzare l'aspetto della pagina prodotto, copia content-single-product.php da wp-content/plugins/woocommerce/templates/ a wp-content/themes/tuo-tema-child/woocommerce/ e modificalo. WooCommerce userà automaticamente la tua versione.

Usare un tema child con i page builder

Se usi Elementor, Divi o un altro page builder, un tema child è comunque consigliato. Il page builder memorizza i contenuti nel database, quindi non dipende dai file di template, ma le personalizzazioni CSS, le funzioni PHP personalizzate e le modifiche a header/footer dovrebbero risiedere nel tema child. La maggior parte dei temi più diffusi (Astra, GeneratePress, OceanWP) mette a disposizione temi child ufficiali scaricabili dal sito dell'autore del tema.

Errori comuni e come evitarli

  • Intestazione Template errata: Template deve corrispondere esattamente al nome della directory del tema parent. Anche una differenza tra maiuscole e minuscole può causare problemi.
  • Mancato caricamento dello stile del parent: senza un corretto enqueue, il tema child non erediterà il design del tema parent e il sito apparirà rotto.
  • Copiare troppi file: non copiare tutti i file dal tema parent al tema child. Copia SOLO i file che modifichi effettivamente. Troppe copie significano che non riceverai più gli aggiornamenti del tema parent per quei file.
  • Dimenticare il tag PHP: functions.php deve iniziare con un tag <?php. Senza di esso, WordPress non riconoscerà il file come PHP e lo ignorerà.
  • Modificare il tema child invece del Customizer: per modifiche semplici (colori, font, layout) usa il Customizer di WordPress, che salva le impostazioni nel database. Usa il tema child per le modifiche strutturali che il Customizer non copre.

Conclusione

I temi child di WordPress sono uno strumento essenziale per chiunque personalizzi l'aspetto o le funzionalità del proprio sito. Si creano in 5 minuti (due file), proteggono le tue personalizzazioni dagli aggiornamenti del tema parent e offrono un modo organizzato per gestire il codice personalizzato. Che tu modifichi solo poche regole CSS o realizzi complessi override dei template, usa sempre un tema child. Su BeoHosting, la nostra assistenza può aiutarti a creare e configurare un tema child per il tuo sito WordPress, così potrai personalizzare il design in tutta sicurezza senza il timore di perdere le modifiche.

BeoHosting Team

10+ anni di esperienza — Specialisti di web hosting e infrastrutture

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Ultimo aggiornamento: