WordPress
Gerarchia dei modelli
Ricerca…
Osservazioni
Plugin per il debug in WordPress:
introduzione
Una delle cose più importanti da imparare quando si sta creando un tema WordPress è la gerarchia di WordPress Template per temi. La gerarchia dei modelli definisce quale file modello verrà caricato per ogni richiesta e in quale ordine. Se il primo modello non esiste nella gerarchia, WordPress proverà a caricare il prossimo e così via fino a quando non index.php
in index.php
.
Per descrivere dettagliatamente la gerarchia dei modelli, il modo migliore è ovviamente utilizzare un'immagine con la struttura completa:
La gerarchia dei modelli inizia con i tipi principali di pagine come archivio, pagina singolare o prima pagina e poi i sottotipi come archivio autore, archivio tag, pagina o post del blog.
Dopodiché troveremo i modelli reali che verranno caricati. Innanzitutto ci sono i modelli più specifici che utilizzano le lumache o gli ID per scegliere tipi di archivio o post specifici.
Per esempio category-$slug.php
che ha come target solo la categoria con uno slug specifico, ad esempio category-books.php
verrebbe utilizzato solo per la categoria con il book
slug. Un altro esempio è page-$id.php
che si rivolge solo a una pagina con un ID specifico, ad esempio page-41.php
indirizzerebbe solo la pagina con l'ID 41.
Dopo i template che hanno come target specifici tipi o post, arriviamo ai modelli di tipo generico, come archive.php per tutte le pagine di archivio o page.php
per tutte le pagine. Ma ricorda, quelli saranno usati solo se la pagina corrente non corrisponde a nessuno dei modelli che sono più in alto nella gerarchia.
Infine, se WordPress non è riuscito a trovare modelli corrispondenti nella directory dei modelli, l'ultimo fallback è sempre index.php
che è l'unico file di modello richiesto in un tema WordPress.
Debug
È facile perdersi durante il debug della ricerca. Puoi usare il comando integrato di PHP debug_backtrace
.
Inserisci lo snippet successivo in qualsiasi modello che desideri eseguire il debug e visualizza la pagina generata:
<!--
<?php print_r( debug_backtrace() ) ?>
-->