Creare un Tema WordPress – Gerarchia dei file
Questo sarà il primo di una lunga serie di articoli e tutorial riguardanti lo sviluppo in WordPress, quindi darò per scontato che conosci bene questo CMS, insieme ai linguaggi HTML, CSSe PHP.
Per chi non lo sapesse, WordPress è una piattaforma di gestione dei contenuti (CMS) open source, realizzata in PHP che si appoggia ad un database MySql.
Nato come sistema di blogging, con gli anni si è sempre più evoluto e, grazie anche allo sviluppo di plugin che ne aumentano le funzionalità, è possibile utilizzare WordPress sia per la creazione di un semplice blog, ma anche per la vendita online di prodotti.
Mentre sto scrivendo, la versione più recente è la 4.8 disponibile in italiano al seguente link
La differenza tra tema e template
Innanzitutto va fatta una piccola precisazione.
Spesso si tende a confondere i termini tema e template, scambiandoli per la stessa cosa e utilizzandoli come sinonimi ma in realtà non è cosi.
Il template è il layout che verrà applicato al singolo elemento, su WordPress esiste un template diverso per ogni tipologia di contenuto, uno che si occupa di visualizzare gli articoli, uno per le pagine, uno per le categorie, uno per i risultati di ricerca e così via:
Il tema invece, è l’insieme di tutti questi template.
La gerarchia dei file
Su WordPress, i file principali che compongono un tema sono due, index.php e style.css, per tutti gli altri file è necessario rispettare una gerarchia che è possibile visualizzare nell’immagine sottostante.
Ognuno di questi file si occupa di generare il contenuto dell’elemento richiesto.
Ad esempio single.php è il template che gestisce la visualizzazione degli articoli mentre page.php le pagine del sito.
Quando uno di questi file non è presente, WordPress proverà a cercare il file successivo nella gerarchia.
Se non dovesse essere presente nessun file, verrà utilizzato index.php per visualizzare il contenuto.
Puoi approfondire questo discorso consultando la documentazione ufficiale di WordPress
Puoi anche impostare un template diverso per ogni pagina, categoria oppure articolo, semplicemente aggiungendo al nome del file, separato da un trattino, l’id dell’elemento (ad esempio category-1.php se la categoria ha come ID 1).
Oppure, se hai creato un post personalizzato o custom post type, introdotti nella versione 3.0 di WordPress, è possibile associare un diverso template sostituendo l’ID precedentemente menzionato con il nome del custom post type, ad esempio single-portfolio.php se il custom post type si chiama portfolio.
È comunque troppo presto per parlarti dei custom post, anche perché sarà un argomento delle future lezioni e quindi rischierei solo di confonderti.
La cartella in cui WordPress va a memorizzare ogni tema è wp-content/themes/.
Puoi installare nuovi temi in due modi, dalla sezione “Temi” di WordPress oppure copiando l’intera cartella del tema in /wp-content/themes/.
File fondamentali per il funzionamento di un tema WordPress
Detto questo, ecco un elenco di file che non dovrebbero mai mancare:
- index.php , il file più importante, senza di esso il nostro tema non funzionerebbe, nè verrebbe riconosciuto da WordPress.
- header.php , il file dove caricare i tags di apertura e la parte alta del tema.
- single.php , il template che si occupa di visualizzare gli articoli.
- page.php , il template che si occupa di visualizzare le pagine.
- comments.php , il template che si occupa di visualizzare i commenti ma, come vedremo tra qualche lezione, può anche non essere aggiunto.
- archive.php , il template che si occupa di visualizzare le categorie.
- search.php , il template che si occupa di visualizzare i risultati di ricerca.
- sidebar.php , la barra laterale del nostro tema.
- 404.php , pagina di errore, nel caso la pagina richiesta non esista.
- footer.php , template dove inserire la parte finale del tema, oltre ai tags di chiusura.
Dopo questa breve introduzione, vi do appuntamento alla prossima lezione in cui vedremo, nel dettaglio, ogni template andando a scrivere le prime righe di codice che comporranno il nostro tema WordPress.