Tema WP – Struttura

Quando si sviluppa un tema WP sarebbe bene partire da una base come underscores.me, che ci dà una struttura base in linea con WP e le best practices .

Ma noi ci vogliamo divertire quindi la faremo completamente da zero XD

Dopo aver Inizializzato TailwindCss e AlpineJS come detto un un articolo precedente, per far capire a WP che il nostro è un tema, abbiamo bisogno di pochissimi file (anzi, tecnicamente basterebbe il solo file style.css con i commenti corretti, ma sarebbe un tema vuoto):

  • style.css: caricato in automatico da WP, le prime linee sono un commento che definisce le informazioni del tema
  • functions.php: caricato in automatico da WP, vengono definite tutte le funzionalità del nostro tema
  • header.php: file template richiamato dalla funzione get_header()
  • footer.php: file template richiamato dalla funzione get_footer()
  • index.php: file template richiamato in caso di assenza di template specifici al post type

Il loop WP

Uno dei concetti fondamentali di WordPress è il loop; qualsiasi cosa su WP viene richiamato tramite un loop al suo primo caricamento, anche se poi in alcuni tipi di template non lo dobbiamo richiamare.

In ogni caso, nel nostro index.php lo dobbiamo utilizzare, poichè questo file è l’ultimo che viene richiamato quando non si trovano template specifici per un certo tipo di pagina.

Questo è il nostro loop; alla linea 6 controlliamo se abbiamo qualcosa (tutto è un post – o una tassonomia – in WP) su cui fare il loop, e alla riga 10/11 inizzializziamo il loop, chiuso alla linea 58.

Prima e dopo il loop includiamo il file header.php (che contiene i tag HTML di apertura pagina e l’head) e il file footer.php (dove includiamo il footer di WP con i suoi script e chiudiamo i tag della pagina HTML).

All’interno del loop si possono usare funzioni tipo the_title(), the_excerpt(), the_post_thumbnail() e molte altre funzioni che servono a richiamare varie informazioni del post corrente del loop. Maggiori informazioni sul loop si possono trovare alla pagina dedicata nella doc WP.

Template Hierarchy

Un altro concetto fondamentale di WP è la gerarchia dei file. Come detto più volte, tutto su WP è un post o una tassonomia; questi hanno sempre associato uno slug e un id univoci, così come una tipologia. Tipologie comuni sono page, category, tag, author ecc; inoltre si possono aggiungere tutti i post type che vogliamo, identificandoli tramite slug personalizzati e utilizzandoli nei template.

Al caricamento pagina, WordPress va alla ricerca di file specifici in base al contenuto richiesto, seguendo una logica del tipo:

{mode}-{post-type}-{slug}.php

Se ad esempio andiamo alla pagina di categoria “wordpress”, WP cercherà i file in questa sequenza:

  • category-wordpress.php
  • category-7.php (se 7 è l’id della categoria)
  • category.php (il nome della tassonomia)
  • archive.php (se era una pagina singola sarebbe stato single.php)
  • index.php

Maggiori info nella pagina dedicata della doc WP.

Template parts

Abbiamo visto che tramite le funzioni get_header e get_footer possiamo richiamare i rispettivi file .php; queste parti vengono definite come parti di template, cioè sezioni del nostri sito.

Se volessimo includere nostri template personalizzati, wordpress mette a disposizione la funzione get_template_part() che accetta come primo argomento il nome del file da richiamare; se il file si trova in una sottocartella, basta scrivere il percorso relativo partendo dalla root del tema.

uso della funzione get_template_part