I contenuti di WordPress sono di diverso tipo. Ci sono articoli dinamici, normalmente definiti post, e contenuti statici, definiti pagine. Questi due sono i tipi di contenuto più utilizzati, ma non sono comunque gli unici tipi di contenuto presenti in WordPress. Anche le immagini e i contenuti multimediali devono essere annoverati tra i contenuti, e vengono associati ad un tipo specifico di contenuto che viene definito attachment. Poi ci sono le voci di menu, le revisioni ed altri tipi di contenuto specifici, alcuni dei quali con funzioni di amministrazione.

Al momento sono disponibili i seguenti 8 tipi di contenuto:

In WordPress il termine post viene utilizzato in un duplice senso. Secondo l’accezione più generale, ogni tipo di contenuto viene definito post. Per questo si parla di post type per intendere tipo di contenuto. Secondo l’accezione più ristretta, i post sono invece gli articoli del blog, aventi carattere dinamico e visualizzati nel blog e negli archivi in ordine cronologico inverso.

Anticipiamo da subito che i tipi di post di WordPress non sono solo quelli predefiniti. L’architettura del CMS, infatti, è incredibilmente flessibile e permette di modellare l’organizzazione dei contenuti in modi del tutto arbitrari. In un altro articolo descriveremo i tipi di post personalizzati (custom post type).

In WordPress tutti i tipi di contenuto vengono memorizzati nella tabella wp_posts del database e sono trattati diversamente dal software a seconda del valore del campo post_type.

Struttura del database di WordPress
La descrizione del database di WordPress (origine immagine: Codex WordPress)

È bene chiarire subito che non tutte le informazioni relative ai contenuti vengono memorizzate nella tabella wp_posts. Una serie di dati dipendenti dai post, i cosiddetti meta dati, vengono registrati nella tabella wp_postmeta. Ogni riga di questa seconda tabella contiene una coppia meta_key/meta_value che memorizza informazioni aggiuntive direttamente collegate ai post.

Altro tipo di dati collegati ai contenuti di WordPress sono le tassonomie. Di default, gli articoli del blog (i normali post) hanno due tassonomie native, le Categorie e i Tag. Parleremo di tassonomie in altri articoli, qui ci basterà dire che si tratta di informazioni che permettono di classificate i contenuti gerarchicamente (le categorie) o semanticamente (i tag), utilizzate per facilitare la navigazione del sito e la ricerca di contenuti stessi. Oltre alle tassonomie native, è possibile creare tassonomie personalizzate ed assegnarle ai contenuti nativi di tipo post e/o ai tipi personalizzati.

Ma vediamo nel dettaglio i tipi di post predefiniti.

I tipi di post predefiniti

Post

Un post è un articolo che viene visualizzato nella pagina principale del blog e nelle pagine di archivio in ordine cronologico inverso: il più recente viene visualizzato al di sopra del meno recente.
I post sono i tipi di contenuto principali di WordPress, soprattutto perché WordPress nasce come sistema di gestione di blog, prima di evolvere in vero e proprio CMS. Questi vengono anche visualizzati nei feed RSS e sono accompagnati da un sistema nativo di commenti.

Molto del successo di WordPress è dovuto alla semplicità di gestione dei contenuti principali del sito, cioè proprio i post del blog.
Per creare un post basta accedere al pannello di amministrazione e cercare nel menu di sinistra la voce Articoli → Aggiungi articolo.

Aggiungi articolo
La schermata predefinita Aggiungi articolo di WordPress 5.0.3

Nella sidebar di destra della pagina di acquisizione e modifica dei post sono disponibili diverse sezioni per aggiungere informazioni e meta dati relativi all’articolo corrente. Nella scheda Documento sono disponibili le seguenti sezioni:

  • Stato e visibilità
  • Permalink
  • Categorie
  • Tag
  • Immagine in evidenza
  • Riassunto
  • Discussione

Queste sezioni non saranno disponibili per tutti i tipi di post predefiniti, essendo specifici dei post del blog. Per quel che riguarda i tipi di post personalizzati, le funzionalità andranno specificate al momento della registrazione.

Impostazioni documento di un post
Impostazioni documento di un post nell’editor predefinito di WordPress 5.0

In precedenza si è accennato ai dati memorizzati nella tabella wp_postmeta. In questa tabella vengono archiviate le meta informazioni, ossia informazioni accessorie di supporto al post, con le funzioni più svariate. In quest’ambito ricadono i cosiddetti custom field.

I campi dei custom field in Gutenberg
I campi dei custom field in Gutenberg

Questi campi vengono offerti all’utente di WordPress con un sistema di coppie chiave/valore che possono essere utilizzate per l’inserimento di dati da visualizzare insieme al post, oppure per la gestione o per la visualizzazione del post stesso. Si pensi, ad esempio, alla possibilità di assegnare una classe CSS specifica per ogni post. Un custom field potrà, così, comporsi della coppia classe/nome. Lo sviluppatore di temi dovrà poi utilizzare il dato per assegnare la class CSS alla pagina.

Pagine

Le pagine di WordPress sono molto simili agli articoli, ma hanno una vita indipendente da questi. Non compaiono nella timeline del blog e degli archivi di post e possono essere visualizzate all’interno di template pagina che permettono di strutturarle graficamente in modo autonomo rispetto al resto del sito. A differenza dei post, inoltre, possono essere organizzate in ordine gerarchico, con pagine genitori e pagine figli.
Di default, alle pagine non possono essere assegnate categorie e tag.

Le pagine, in pratica, rendono WordPress adatto anche alla messa in opera di siti statici, quindi con sporadici aggiornamenti e senza un sistema di commenti.

Impostazioni documento di una pagina
Impostazioni documento di una pagina nell’editor predefinito di WordPress 5.0

Le pagine, come i post, supportano di default i custom post type.

Allegati

Gli attachment sono tipi particolari di post che hanno la funzione di conservare informazioni sui file caricati nella libreria multimediale di WordPress. Questi tipi di post non sono direttamente accessibili, e per essere visualizzati devono essere attivati aggiungendo un collegamento ipertestuale all’immagine quando questa viene inserita in un post o in una pagina.

Per visualizzare un allegato immagine bisogna seguire questi passaggi:

1. Carichiamo un’immagine nella libreria multimediale

Possiamo farlo dal menu Media → Aggiungi nuovo, oppure direttamente dall’editor dei post di WordPress. Una volta creato il blocco immagine, basterà selezionarla con un click perché si apra nella sidebar di destra la scheda delle Impostazioni del Blocco.

2. Aggiungiamo all’immagine un link che punta all’allegato

Scorriamo la sidebar fino alla sezione Impostazioni link. Dal menu a scomparsa, selezioniamo la voce Allegato pagina. Salviamo i dati e visualizziamo il post.

Impostazioni link
Impostazioni link del Blocco immagine

Ciò che verrà fuori cliccando sull’immagine sarà la pagina dell’allegato media.

Per quello che riguarda l’amministrazione, l’editor della pagina sarà raggiungibile dal menu Media → Libreria, e qui cliccando sull’immagine associata. Apparirà una scheda in cui sarà possibile modificare alcuni dei dati associati all’immagine.

Dettagli allegato immagine
Dettagli allegato immagine

Nella scheda Dettagli allegato appare il link Modifica i dettagli aggiuntivi. Facendo click su questo link, si giungerà finalmente all’editor del tipo di post attachment.

I dati relativi al file immagine saranno memorizzati nella tabella wp_postmeta, in corrispondenza della chiave _wp_attachment_metadata. Il valore sarà in formato JSON serializzato.

Questo per quanto riguarda il funzionamento predefinito degli attachment in WordPress. Lo sviluppatore potrà trovare interessante la possibilità di personalizzare i tipi di post attachment, cosa fattibile con poche righe di codice, come ho spiegato in questo articolo per Kinsta.

Revisioni

Le revisioni sono delle copie dei post prese in momenti specifici dell’editing ed hanno la funzione di permettere il ripristino dei contenuti ad un momento preciso nel tempo. Per accedere alle revisioni di un post, bisogna semplicemente individuare il link Revisioni nella sidebar delle impostazioni del Documento. Scorrendo il cursore nella barra superiore, si avrà accesso ad ognuna delle revisioni esistenti e si potrà decidere se ripristinarla o meno.

revisioni di un post
La pagina delle revisioni di un post

L’utilità è indubbia, ma le revisioni hanno anche un rovescio della medaglia: queste, infatti, possono influire negativamente sulle prestazioni dei siti web quando il loro numero diventa eccessivo. Per questo si consiglia di tenere sempre sotto controllo il numero delle revisioni aggiungendo un’istruzione nel file wp-config.php o attraverso l’utilizzo di un plugin.
Il modo più semplice di controllare il numero delle revisioni è quello di inserire il seguente codice nel file di configurazione:

define( 'WP_POST_REVISIONS', 5 );

Gli elementi dei menu di navigazione costituiscono un tipo di post particolare. Questo, infatti, non contiene informazioni tipiche di un articolo o di una pagina, ma contiene tutti i dati relativi agli elementi dei menu di navigazione di WordPress. La visualizzazione di questi dati dipenderà esclusivamente dal tema attivo, ma gli sviluppatori possono personalizzare l’aspetto dei menu in modo più o meno avanzato.

Per accedere ai menu di navigazione, si procede da Aspetto → Menu. Qui possono essere creati tutti i menu di navigazione che si desidera. Questi rimarranno a disposizione per essere poi inseriti in una menu location o in un widget. Una volta creato un nuovo menu di navigazione, l’interfaccia permetterà di aggiungere una pagina, un articolo, un link personalizzato, una categoria o un tag. Altre tipologie di elementi potranno essere aggiunte da plugin di terze parti.

menu di navigazione di WordPress
La pagina di amministrazione dei menu di navigazione di WordPress

Altri tipi di contenuto hanno funzioni prettamente amministrative. Si tratta dei CSS personalizzati, dei changeset e delle richieste dati utente.

CSS Personalizzati

I CSS personalizzati sono contenuti archiviati sempre nella tabella wp_posts, ma con funzioni di supporto ai temi grafici. I tipi di post custom_css hanno infatti lo scopo di tenere in menoria le dichiarazioni CSS che l’amministratore del sito ha assegnato al tema corrente.

Per accedere al custom_css del tema corrente è necessario accedere al Customizer del tema e individuare la sezione CSS aggiuntivo.

CSS aggiuntivo
La sezione CSS aggiuntivo del Customizer del tema Twenty Nineteen

Una volta che si accede a questa sezione, sarà possibile inserire le proprie dichiarazioni CSS, il cui effetto sarà visibile in tempo reale nell’anteprima del sito.

L'anteprima del sito
L’anteprima del sito di prova a seguito dell’inserimento di un blocco di dichiarazioni CSS

Per avere una prova di come vengono gestiti i dati inseriti dall’utente, basterà accedere a phpMyAdmin e cercare il post con post_type = custom_css.

Changeset

Un’altra funzionalità associata al Customizer di WordPress sono i changeset, che da un punto di vista logico assomigliano un po’ alle revisioni. Si tratta, infatti, di un modo di archiviare in modo permanente le modifiche fatte dall’utente tramite il Customizer. I changeset memorizzano i cambiamenti in attesa di pubblicazione. A partire da WordPress 4.9, infatti, la pubblicazione delle modifiche grafiche può essere rinviata ad un momento successivo. Nel mentre, il lavoro fatto può essere pubblicato immediatamente, salvato in bozza per una successiva modifica, oppure pianificato per la pubblicazione. I dati saranno memorizzati nella tabella wp_posts nei record individuati da post_type = customize_changeset.

changeset
Le funzionalità del Customizer di WordPress associate ai changeset

Maggiori informazioni sui changeset nei seguenti articoli di WordPress.org:

Richieste Dati Utente

Si tratta di un altro tipo di post di servizio, introdotto da WordPress 4.9.6. In questo tipo di contenuto vengono memorizzati i dati di una richiesta utente caricati da un oggetto WP_Post (si veda il Codex al riguardo).

Custom Post Type

In aggiunta ai tipi di contenuto predefiniti, WordPress permette di creare tipi di post personalizzati, o custom post type.