Se desiderate personalizzare i temi o costruirne di nuovi da zero, è importante capire come funziona la gerarchia dei template di WordPress.

In primo luogo, questo sistema tipico di WordPress permette di mantenere tutto organizzato. Una volta che si sa cosa sono tutti i template file dei temi, cosa fanno e qual è la loro priorità, sarete in grado di modificare quasi ogni elemento dell’aspetto del vostro sito WordPress.

In questo articolo spiegheremo cos’è la gerarchia dei template di WordPress e come funziona. Forniremo quindi un’analisi completa dei template file coinvolti in ogni tipo di pagina di WordPress (incluso un cheat sheat di riferimento), per aiutarvi ad utilizzarli al meglio.

Cominciamo!

Introduzione alla Gerarchia dei Template di WordPress

Generalmente, i siti web non dinamici utilizzano file HTML e CSS statici per rendere a video i loro contenuti. Ma WordPress è una piattaforma dinamica basata sul linguaggio di programmazione PHP. Ogni sito WordPress carica più file .php, ognuno dei quali regola l’aspetto di una specifica sezione o componente.

Ogni volta che si carica un certo tipo di pagina, il Content Management System (CMS) cerca i template file corrispondenti.

Ad esempio, se si utilizza la funzione di ricerca di WordPress e si carica una pagina dei risultati della ricerca, il CMS cercherà due template file:

  1. search.php, che regola l’aspetto delle pagine dei risultati della ricerca
  2. index.php, che è il template file predefinito che WordPress utilizza quando non riesce a trovare la prima opzione all’interno di ogni gerarchia

I template file a cui si ha accesso dipenderanno dal tema che si utilizza. Tutti i temi di WordPress sono una raccolta di template, fogli di stile e altri elementi, come le immagini. Quindi, nell’esempio precedente, se il tema utilizzato include un template search.php, WordPress lo cercherà e lo caricherà.

In alcuni casi, si potrebbe utilizzare un tema che non dispone dei template file per i tipi di pagine che si desidera caricare. È qui che entra in gioco la gerarchia dei template di WordPress. Questa è un sistema integrato che dice a WordPress quali template file caricare e in quale ordine.

Per una pagina di ricerca, se WordPress non riesce a trovare il file search.php, passa al file successivo nella gerarchia, che è index.php. Questo file è il fallback finale per ogni singolo ramo all’interno della gerarchia dei template.

In teoria, si può avere un tema completamente funzionale che include un solo template file, e cioè index.php.

In pratica, però, un tema con un unico template file non includerebbe quasi nessuna personalizzazione, e ogni tipo di pagina sarebbe più o meno la stessa. A meno che non sia quello che state cercando, comprendere la gerarchia dei template di WordPress è uno dei passi più importanti da compiere come sviluppatori di temi.

Come Funziona la Gerarchia dei Template di WordPress

Come forse saprete, WordPress permette di utilizzare più tipi di pagine a seconda di ciò che volete pubblicare, suddivise in sette categorie principali:

  1. Prima pagina
  2. Post singoli
  3. Pagine singole
  4. Tipi di post personalizzati
  5. Pagine dei risultati della ricerca
  6. Pagine di categorie di tag
  7. Pagine di errore 404

Ognuna di queste pagine ha una propria gerarchia personalizzata, il che significa che utilizza un insieme specifico di template file.

Se si dà un’occhiata veloce alla cartella di un qualsiasi tema, di solito si trova una raccolta di template file. Di seguito è riportato un esempio di template file elencati all’interno della cartella del tema per un post del blog:

Template file nella directory di un tema di WordPress
Template file nella directory di un tema di WordPress

Si tratta di un tipo di pagina di post singolo, il che significa che utilizza il file single.php come template per il contenuto principale della pagina (il post stesso).

Inoltre, ha un template file separato per ogni elemento della pagina, la maggior parte dei quali dovrebbe essere identificabile a colpo d’occhio:

Sebbene ogni tipo di pagina abbia una propria gerarchia, spesso condividono anche template file comuni, come header.php e footer.php.

Se si sta costruendo il proprio tema, ciò significa che è possibile creare stili personalizzati per ogni tipo di pagina, costruendo anche template file da riutilizzare più volte.

È anche possibile creare template file personalizzati per elementi come le barre laterali e i footer che si applicano solo a determinati tipi di pagina. Questa flessibilità è possibile grazie all’approccio modulare ai template di WordPress.

Quando si cambia tema, le differenze nei layout che si vedono vengono attribuite ai nuovi template file caricati da WordPress. Anche i child theme hanno un ruolo nella gerarchia dei temi di WordPress, come vedremo a breve.

Dove Trovare e Modificare i Template File di WordPress

Un file .php può includere sia codice PHP che markup HTML (tutti modificabili). In quanto tali, i template file di WordPress possono essere complessi quanto basta. In molti casi, i template file utilizzati da WordPress sono un insieme di funzioni per gli elementi che ognuno di questi governa.

Per fare un esempio, ecco il template file header.php del tema ufficiale di WordPress Twenty Twenty-One:

Header del tema Twenty Twenty-One
Il template file dell’header del tema Twenty Twenty-One

Come abbiamo detto, ogni tema di WordPress include un proprio set di template file. È possibile vedere quali template file include il vostro tema dalla sua cartella all’interno della directory principale del vostro sito tramite un client FTP (File Transfer Protocol).

Ecco come si presenta il precedente tema ufficiale di WordPress, Twenty Twenty:

La cartella e i template file del tema Twenty-Twenty
La cartella e i template file del tema Twenty-Twenty

Di default, WordPress caricherà i template file che si trovano all’interno della directory principale del tema (wp_content > themes) o all’interno della cartella template-parts.

Se si prevede di creare più template file, si consiglia di mantenere i principali template di pagina all’interno della directory principale. Per i template file più specifici, come ad esempio una pagina a tutta larghezza o i layout della barra laterale, è possibile utilizzare le sottodirectory.

Il modo migliore per comprendere l’intera gerarchia dei template di WordPress è attraverso un cheat sheet. In questo caso, vi mostriamo una panoramica visuale della gerarchia dei template tratta dal Codex di WordPress:

La gerarchia dei template di WordPress
La gerarchia dei template di WordPress

Il Codex di WordPress contiene molte informazioni sulla gerarchia dei template, per cui consigliamo di aggiungere un segnalibro a questa risorsa. Per ora, analizziamo ogni tipo di pagina e i template file che utilizza.

Analisi della Gerarchia dei Template di WordPress per Tipo di Pagina

WordPress utilizza sette tipi principali di pagine. In questa sezione, parleremo di ognuno di questi e vi offriremo un’analisi dei template file utilizzati. Cominciamo dalla pagina iniziale (Front Page).

Template File della Pagina Iniziale

La homepage di WordPress è la prima tappa della maggior parte degli utenti che visitano il vostro sito web. Il layout della prima pagina può variare notevolmente da un sito all’altro.

Tuttavia, per una pagina iniziale di base, WordPress cercherà, nell’orgine, questi tre template file:

  1. front-page.php
  2. home.php
  3. index.php

Se il tema non include un template file front-page.php, WordPress passerà automaticamente alla seconda opzione, e così via. Come sempre, il file index.php è l’ultima tappa di WordPress nell’albero dei template.

Post Singoli

I singoli articoli di WordPress utilizzano la gerarchia dei post singoli. Per il contenuto principale di ogni post del blog, WordPress cercherà i seguenti file:

  1. single.php
  2. singular.php
  3. index.php

Se si dà un’occhiata al cheat sheet dei template, tuttavia, si noterà una gerarchia più complessa che viene seguita in alcuni casi.

Questo perché WordPress consente di designare i template file per i singoli post e le singole categorie, e poi di default va su single.php se non riesce a trovare nessuna di queste opzioni.

Oltre ai template file principali, si hanno elementi come l’header, il footer, le sidebar e le sezioni dei commenti. Come abbiamo detto, ognuno di questi elementi può avere il proprio template file.

Pagine Singole

Dopo i post, le singole pagine sono il succo della maggior parte dei siti WordPress. Nella maggior parte dei casi, utilizzano un template diverso dalla vostra prima pagina, a meno che entrambi i tipi di pagine non siano impostate di default su index.php.

Ecco la gerarchia dei template di una pagina singola:

  1. page.php
  2. singular.php
  3. index.php

Sebbene la gerarchia dei template dei singoli post e delle singole pagine sia simile, ci sono alcune differenze importanti.

In primo luogo, per modificare o reindirizzare il template di pagina predefinito, per le pagine singole WordPress utilizza il percorso get_page_templates().

Inoltre, è possibile creare template per specifici slug e ID. Se si dispone di un file page-{slug}.php o di un file page-{id}.php, WordPress cercherà di caricare ogni file in ordine, prima di passare a page.php.

Custom Post Type

È possibile creare tipi di post personalizzati per vari tipi di contenuti che volete gestire come pagine o post. I tipi di post personalizzati forniscono un livello di organizzazione più elevato per i vostri contenuti e hanno anche una propria gerarchia di template:

  1. archive-{post_type}.php
  2. archivie.php
  3. index.php

La gerarchia dei template per i tipi di post personalizzati non è così complessa come lo è per le pagine intere o per i post. Tuttavia, WordPress consente di creare template file per ogni tipo di post personalizzato, in modo che non debbano avere esattamente gli stessi layout.

Pagine dei Risultati di Ricerca

Abbiamo già presentato la gerarchia di template utilizzata da WordPress per le pagine dei risultati di ricerca, quindi ricapitoliamo brevemente:

  1. search.php
  2. index.php

Man mano che ci allontaniamo dai tipi di pagine “complesse”, come i post o la Front Page, la gerarchia dei template di WordPress diventa molto più semplice.

Con una pagina di ricerca, di solito non è necessario includere troppi elementi oltre ai risultati stessi. Più semplice è la struttura, più corta è la gerarchia.

Pagine di Categorie e Tag

Anche se molti siti non si vi puntano direttamente, WordPress genera pagine collettive per tag e categorie. Ci sono anche sottopagine specifiche per ogni voce all’interno di tale tassonomia.

Considerando quanto complessa possa diventare la tassonomia dei siti web con grandi archivi di contenuti, questa gerarchia comporta più “passaggi” del solito:

  1. category-{slug}.php
  2. category-{id}.php
  3. category.php
  4. archive.php
  5. index.php

Si noti che la stessa gerarchia è utilizzata anche per i tag, tranne per il fatto che “tag” sostituisce “category” in tutti i casi.

In teoria, è possibile creare singoli template file per ogni categoria o tag del proprio sito WordPress e identificarli tramite slug o ID. Tuttavia, sono pochi i siti web che se ne occupano.

Se non avete intenzione di far sfogliare la vostra pagina delle categorie, passate al template archive.php.

Pagine di Errore 404

A volte i visitatori cercano di accedere a una pagina che non esiste. Quando succede, WordPress restituisce una pagina di errore 404.

Di default, WordPress non offre soluzioni per la personalizzazione dell’aspetto di questa pagina. Tuttavia, è possibile regolarne l’aspetto da soli attraverso il template file. La gerarchia dei template è semplice:

  1. 404.php
  2. index.php

Con la crescita del vostro sito, cresceranno anche i casi in cui gli utenti potrebbero incorrere in errori 404. Avere una pagina di errore personalizzata per queste situazioni può aiutare a informare meglio i visitatori sul perché la pagina non sta caricando, indirizzarli ad un’altra risorsa e ridurre l’irritazione.

Quando si carica un template file 404, WordPress cerca e carica il file personalizzato prima di utilizzare quello predefinito.

Dove si Inseriscono i Child Theme nella Gerarchia dei Template di WordPress

Se vi piace personalizzare i temi di WordPress, una buona prassi è quella di utilizzare un child theme. Anche questi hanno il loro posto all’interno della gerarchia dei template, ma non è evidente se si guarda il cheat sheet che abbiamo visto in precedenza.

In breve, l’utilizzo di un child theme aggiunge un secondo livello alla gerarchia dei template per ogni tipo di pagina che si utilizza.

Supponiamo di utilizzare un child theme che include template file personalizzati per pagine singole. Ecco l’ordine in cui WordPress cercherà di caricare i file:

  1. page.php all’interno del child theme
  2. page.php all’interno del tema principale
  3. singular.php all’interno del child theme
  4. singular.php all’interno del tema principale
  5. index.php all’interno del child theme
  6. index.php all’interno del tema principale

Se WordPress riesce a trovare una versione di un template file all’interno del vostro child theme, caricherà quella anche se c’è un corrispondente template file all’interno del tema genitore. In alcuni casi, ci si potrebbe trovare in una situazione in cui si desidera personalizzare i template file di un tema, e un child theme in questo caso è perfetto.

Come per altri tipi di personalizzazioni, quando si aggiorna un tema si perdono le modifiche ai template file. Effettuare le modifiche tramite un child theme vi salverà da questa situazione.

Utilizzo dei tag dei template di WordPress per lo sviluppo del tema

Nello sviluppo di WordPress, spesso ci si imbatte in template tag, che sono funzioni PHP che si possono utilizzare per generare e recuperare dati in modo dinamico. I template tag sono spesso parte dei template file, ma non sono intercambiabili.

WordPress genera nel suo codice decine di template tag che è possibile utilizzare nello sviluppo dei temi. Tra questi ricordiamo:

  • get_header()
  • get_footer()
  • get_sidebar()
  • get_search_form()
  • get_template_part()

Questi tag consentono di raccogliere i template file dal tema che si sta utilizzando. In pratica, ciò significa che è possibile aggiungere elementi specifici ai template file principali, come front-page.php o index.php.

Se volete un elenco completo di tutti i template tag che potete utilizzare nello sviluppo di WordPress, consultate il Codex.

Qui troverete le istruzioni per utilizzare i template tag, i singoli parametri e gli esempi del Codex.

Riepilogo

Anche se la gerarchia dei template di WordPress può sembrare a prima vista complessa, si riduce a una serie di semplici gerarchie decisionali. Ogni volta che si visita un sito WordPress, il CMS vedrà a quale tipo di pagina si sta cercando di accedere e quindi utilizzerà la gerarchia per determinare quale template file caricare.

Oltre ai template principali per ogni tipo di pagina, è possibile avere anche template file per singoli elementi come header, footer e sidebar.

Questo approccio modulare vi dà il pieno controllo sul modo in cui si presenta ogni pagina del vostro sito e vi aiuta a risparmiare tempo durante il processo di sviluppo di WordPress.

Avete domande sulla gerarchia dei template di WordPress? Condividetele nella sezione dei commenti qui sotto!

Matteo Duò Kinsta

Redattore Capo presso Kinsta e Content Marketing Consultant per sviluppatori di plugin WordPress. Entra in contatto con Matteo su Twitter.