Custom Post Type
I Custom Post Type sono tipi di post personalizzati, contenuti creati dall'utente che si vanno ad aggiungere ai tipi predefiniti, di cui si è già discusso nel capitolo dedicato ai post.
Essi si prestano a svariati impieghi e permettono di adattare WordPress allo sviluppo di progetti web eterogenei. Possono essere utilizzati per creare eventi, schede prodotto, presentazioni di lavori professionali o artistici e qualunque altro tipo di contenuto non inquadrabile nel normale flusso di post.
Affinché possano essere riconosciuti e gestiti da WordPress, i custom post type devono essere registrati attraverso plugin; l'amministratore dovrà decidere se creare un plugin con cui registrare questi post o utilizzarne uno preesistente. Tra questi ultimi uno dei più popolari è Custom Post Type UI.
Si istalli quindi CPT UI seguendo le indicazioni già fornite nel capitolo di introduzione ai plugin. Una volta attivato si noterà il nuovo menu "CPT UI" nella barra dei menu del pannello di amministrazione. Da qui sarà possibile accedere alle pagine di creazione (registrazione) dei Custom Post Type, di creazione e modifica delle tassonomie personalizzate nonché ad altre funzioni di gestione dei contenuti.
Nella pagina di creazione dei tipi di post vengono forniti i campi tramite i quali l'utente amministratore assegnerà i valori ai parametri di registrazione. I campi delle impostazioni di base sono obbligatori nella creazione di nuovi tipi di post:
I dati richiesti sono lo slug del tipo di post, utilizzato per eseguire le query sul database, e le etichette che saranno visualizzate in amministrazione. Opzionalmente è poi possibile definire numerose stringhe di testo associate al tipo di post.
Per i custom post type è possibile creare una voce di menu di primo livello, oppure visualizzare la voce di menu all'interno di un menu già esistente specificando la pagina corrispondente (nell'esempio la pagina degli articoli):
Una corposa serie di impostazioni permette di definire il comportamento del tipo di post che si sta registrando. In questa sezione si può stabilire se il tipo di post debba essere visibile in amministrazione e nel front-end, se i contenuti appartenenti al tipo di post debbano comparire o meno nei risultati di ricerca, se il tipo di post possa essere inserito nei menu di navigazione e se debba comparire nei risultati della REST API.
L'amministratore può stabilire inoltre se per il tipo di post debbano essere creati degli archivi, quali capacità debba avere l'utente per poter gestire questi contenuti e quali siano le regole per il rewrite delle URL. In fase di creazione/modifica dei Custom Post Type vanno definite le funzionalità supportate dal tipo di post:
Visualizzazione dei Custom Post Type
Le impostazioni di configurazione determinano il comportamento dei tipi di contenuto sia nel back-end che nel front-end del sito. In amministrazione, se la configurazione memorizzata lo prevede, verrà generato un menu da cui accedere alle pagine di gestione del tipo di contenuto. L'immagine mostra il menu "Tutti i libri" visualizzato come sotto-elemento del menu "Articoli":
L'aspetto della pagina di creazione/modifica dei tipi di contenuto dipende dalle funzionalità assegnate al tipo di post. A questo tipo di post sono state assegnate le funzionalità "Titolo", "Editor" e "Immagine in evidenza":
Il nuovo contenuto non sarà visibile nel front-end in quanto non entra nel flusso dei post. Tuttavia, se le impostazioni memorizzate lo prevedono, sarà possibile aggiungere i contenuti ai menu di navigazione nella pagina di gestione dei menu ("Aspetto → Menu"). L'immagine mostra il box di selezione dei contenuti disponibile nella pagina di gestione dei menu:
A questo punto abbiamo tutto quello che serve per rendere visibili i tipi di post nel front-end. Le URL delle pagine di archivio saranno strutturate come segue:
http://example.com/post-type-slug/
Mentre le pagine dei singoli contenuti avranno questa struttura:
http://example.com/post-type-slug/post-slug/