Introduzione alla gerarchia dei modelli di WordPress
Pubblicato: 2019-12-11Una delle domande chiave che gli utenti di WordPress si pongono in un determinato momento della loro vita è la seguente: come fanno i temi di WordPress a mostrare pagine diverse a seconda del contenuto che stiamo vedendo?
La domanda, oltre ad essere del tutto lecita, è molto interessante. WordPress è in grado di identificare quale contenuto sta per rendere e, a seconda del tipo, utilizzare un modello o l'altro. I temi di WordPress non sono altro che un insieme di modelli specifici per ogni tipo di contenuto con alcuni JavaScript per elementi dinamici e CSS per stili e colori.
Perfetto, ma... come funzionano effettivamente i template di WordPress? Questo è ciò che vedremo passo dopo passo in questo post.
Prima di iniziare, però, lascia che ti mostri un'immagine con la risposta a questa domanda:

Questa è la gerarchia dei modelli di WordPress. Puoi trovare tutte le informazioni a riguardo nel WordPress Codex, la documentazione ufficiale. Puoi persino interagire con questa gerarchia in questo fantastico sito web.
Fondamentalmente, WordPress utilizza una gerarchia di modelli per renderizzare i suoi contenuti. Cioè, WordPress cerca all'interno del tema che hai attivo un file PHP specifico. Se esiste, WordPress esegue il rendering del contenuto utilizzando quel file, che chiamiamo modello. In caso contrario, WordPress cerca il successivo modello più generico all'interno della gerarchia. Se esiste, WordPress lo utilizza. Altrimenti, WordPress cerca il modello successivo nella gerarchia... e così via. Se WordPress non riesce a trovare un file modello specifico nel tuo tema, utilizza il file index.php predefinito, il più generico di tutti i modelli.
Ora, entriamo più in dettaglio all'interno della gerarchia dei modelli di alcuni dei contenuti WordPress più comuni.
Modelli di pagina
Vediamo i modelli che WordPress utilizza per il rendering di pagine e tipi di contenuto semplici.
Post e tipi di post personalizzati
WordPress esamina i seguenti file PHP sul tuo tema per eseguire il rendering di un post del blog o di un tipo di post personalizzato:
-
single-{post-type}-{slug}.php: se vuoi un modello specifico per un post specifico o un tipo di post specifico, devi creare questo file PHP nel tuo tema. Il suo nome include il nome del tipo di post ({post-type}), che può essere post o qualsiasi altra cosa ( prodotto , se usi WooCommerce). E devi anche digitare lo slug o il permalink, chiamarlo come vuoi, nel nome del modello. Ad esempio, se voglio utilizzare un modello specifico per questo post, dovrei creare il filesingle-post-introduction-to-the-wordpress-template-hierarchy.php. -
single-{post-type}.php: se vogliamo influenzare tutti i contenuti di un tipo di post specifico (tutti i post o tutti i prodotti), utilizzeremo questo template, il cui nome include solo il nome del tipo di post. -
single.php: WordPress utilizza questo modello per eseguire il rendering di qualsiasi singolo contenuto (un post specifico, un prodotto specifico, ecc.). -
singular.php: questo è un altro modello di primo livello per il rendering di contenuti singoli di qualsiasi tipo. -
index.php: se non è stato trovato nessuno dei precedenti, WordPress utilizza questo modello generico per rendere i tuoi contenuti.
Ricorda che nella directory dei temi di WordPress hai migliaia di esempi di temi WordPress a tua disposizione. Ti consiglio di scaricarne uno e provare, come esercizio di apprendimento, a ispezionare i suoi file PHP e identificare i modelli che ho appena presentato.
In questo modo puoi capire quali modelli utilizzano all'interno della gerarchia dei modelli di WordPress e vedere quale contenuto ha ciascuno di questi modelli. Senza dubbio, se vuoi conoscere i temi di WordPress, questo è qualcosa di obbligatorio da fare. Inoltre, è gratis!
Pagine regolari
Come per i post e altri tipi di post, WordPress utilizza una gerarchia di modelli per visualizzare le pagine:
- Modello selezionato: se dalla casella degli attributi di pagina durante la modifica di una pagina si seleziona un modello specifico, questo ha sempre la priorità su tutti gli altri. Puoi imparare a creare modelli personalizzati qui.
-
page-{slug}.php: se vuoi che una pagina specifica abbia un proprio template, crea quel template in un file PHP che abbia lo slug della pagina nel nome. -
page-{id}.php: puoi anche utilizzare direttamente l'ID della pagina di WordPress in cui viene applicato il modello. -
page.php: questo modello si applica a tutte le pagine di WordPress, a meno che non sia già stato applicato uno dei modelli precedenti nella gerarchia. -
singular.php: il modello singolare è il modello predefinito per tutte le pagine, i post, i prodotti e così via. Questo modello verrà applicato raramente poiché la maggior parte dei temi in WordPress include già un modellopage.php. -
index.php: come sempre, questo è il modello di fallback predefinito di WordPress.
Ora prova a ricontrollare il tema che hai scaricato prima e vedrai che ora capisci un po' di più gli altri file che compaiono lì. Sicuramente ora puoi identificare i file PHP per i modelli di pagina.
Pagine speciali
In WordPress ci sono altre pagine speciali che utilizzano anche modelli specifici per il rendering dei contenuti. Un esempio di questo è la pagina principale del sito web. Ricorda che la pagina principale è selezionata nelle Impostazioni di WordPress, all'interno del sottomenu Lettura . Per quella pagina viene utilizzata la seguente gerarchia di modelli:

-
front-page.php: se utilizzi una pagina statica come pagina principale in WordPress, proverà prima ad applicare il modellofront-page.php. -
home.php: se il modello precedente non viene trovato, WordPress tenta di utilizzare questo modello. Questo modello viene utilizzato anche se invece di selezionare una pagina statica come pagina principale hai selezionato l'opzione per mostrare i tuoi ultimi post. -
index.php: di nuovo, il template predefinito è sempre presente.
La pagina che mostra i risultati della ricerca del tuo WordPress è anche una pagina speciale che può avere un proprio template. Per fare ciò puoi utilizzare il modello search.php . Se il tuo tema non lo definisce, index.php verrà utilizzato come al solito.
Infine, la pagina mostrata quando il tuo sito web restituisce un errore 404 può essere configurata anche con un template WordPress specifico. Devi creare il file 404.php nel tuo tema e quindi questo modello verrà applicato.
Modelli per archivi
Finora abbiamo visto modelli per contenuto singolo (tranne nel caso dei risultati di ricerca). Ma in WordPress ci sono anche archivi, che potrebbero rendere più di un elemento in una pagina. Vediamo quale gerarchia di template utilizza WordPress in questo caso.
Categorie e Tag
WordPress utilizza la seguente gerarchia di modelli per le categorie:
-
category-{slug}.php: questo modello viene utilizzato per visualizzare l'elenco dei contenuti (solitamente post) che appartengono a una categoria specifica. In particolare, verrà utilizzato durante il rendering della categoria il cui slug compare nel nome del file PHP. -
category-{id}.php: se preferisci usare gli ID di categoria invece di slug puoi farlo anche tu. Ad esempio, se vuoi applicare un template alla categoria 13, crea il file template con il nomecategory-13.php. -
category.php: il modello predefinito per tutte le categorie. -
archive.php: questo è il modello più generico per gli archivi in WordPress. -
index.php: di nuovo, se il tuo tema non include un modello più specifico, WordPress utilizzerà questo file per impostazione predefinita.
Per i tag viene utilizzata la seguente gerarchia di modelli:
-
tag-{slug}.php: se il tag si chiama interviste , possiamo usare il templatetag-interview.phpnel caso in cui desideriamo progettare un template specifico per quel tag in WordPress. -
tag-{id}.php: possiamo anche definire il template tramite il tag ID. -
tag.php: come concategory.php, questo è il modello generico per i tag. -
archive.php: di nuovo, questo modello verrà utilizzato se nessuno dei precedenti esiste. -
index.php: come sempre, questo è il modello di fallback.
Tipi di post personalizzati e tassonomie personalizzate
Se disponiamo di tipi di contenuto personalizzati, possiamo utilizzare il modello archive-{post_type}.php dove post_type è lo slug del tipo di post personalizzato. Questo renderà l'elenco dei contenuti per quel tipo di post.
Per le tassonomie personalizzate, WordPress utilizza la seguente gerarchia di modelli:
-
taxonomy-{taxonomy}-{term}.php: se hai una tassonomia personalizzata chiamata videogames in WordPress e vuoi creare un template con un design specifico per il termine sport all'interno di quella tassonomia, dovrai creare il filetaxonomy-videogames-sports.phpper utilizzare quel modello. -
taxonomy-{taxonomy}.php: se vuoi usare lo stesso template per tutti i termini della tassonomia, usa semplicementetaxonomy-videogames.php, nell'esempio precedente. -
taxonomy.php: questo è il modello predefinito per tutte le tassonomie. -
archive.php: se nessuno dei modelli di cui sopra esiste, questo si applica. -
index.php: di nuovo, questo è il modello di fallback predefinito.
Con tutte queste spiegazioni dovresti già avere tutto il necessario per creare e identificare i modelli nei tuoi temi WordPress.
Per riassumere
Comprendere la gerarchia dei modelli di WordPress è la chiave per essere in grado di comprendere i temi e persino svilupparne di propri. Non fa mai male dare un'occhiata a questo e sapere come funziona per acquisire sicurezza quando inizi a modificare il codice PHP del tema che usi nel nostro WordPress.
Ci sono altri modelli, ma usati meno spesso. Ad ogni modo, ricorda che puoi sempre andare a controllare la documentazione di WordPress Codex. Lì troverai tutto ciò che non è stato spiegato qui.
Che ne pensi di tutto ciò? Stai ancora utilizzando i modelli per i tuoi contenuti WordPress o stai già costruendo tutti i progetti con i blocchi? Non dimenticare di lasciarmi un commento qui sotto se sei arrivato alla fine del post: mi piacerebbe sapere come usi i modelli di WordPress!
Immagine in primo piano di Edvard Alexander Rlvaag su Unsplash .
