La guida definitiva ai tipi di post personalizzati di WordPress
Pubblicato: 2024-03-26Più di dieci anni fa, ho preso la decisione, che mi ha cambiato la vita e la carriera, di concentrarmi esclusivamente sull'utilizzo di WordPress come piattaforma di pubblicazione e come CMS per il quale creo plugin. I motivi principali sono stati l’eccellente documentazione, inclusi innumerevoli post con snippet e tutorial, e la facilità di estensione di WordPress. Per i miei casi d’uso di allora, la funzionalità più importante per estendere WordPress erano i tipi di post personalizzati.
Migliorati principalmente con la versione 3 di WordPress nel 2010, i Custom Post Type (CPT) vengono utilizzati in molti modi. Sono sicuro che li hai incontrati senza saperlo. Lascia che ti fornisca una panoramica dei CPT, esempi specifici di come li ho utilizzati nel tempo, come impostarli da solo e come ottenere ancora di più con i plugin correlati.
Cosa sono i tipi di post personalizzati?
Il core di WordPress viene fornito con vari tipi di post. I più ovvi sono post, pagine e allegati.
In WordPress 6.4 ce ne sono altri quattro:
- Revisioni
- Menù di navigazione
- Modelli di blocco
- Parti del modello
Fatto curioso: i commenti non sono un tipo di post. Penso che se WordPress non fosse originariamente una piattaforma di blogging con i commenti come parte centrale, oggigiorno li gestiresti anche come un tipo di post.
Come questi potrebbero suggerire, i Post Type non sono sempre ovvi e non necessariamente qualcosa di visibile nel frontend che descriveremmo come “contenuto”. Sono più un gruppo di elementi correlati nel database.
Puoi aggiungere più di queste "cose", che verrebbero quindi chiamate tipi di post "personalizzati".
Non è un termine ufficiale di WordPress, ma mi piace la frase Tipi di “contenuto” personalizzati per qualsiasi tipo di post personalizzato visibile. In seguito farò alcuni esempi.
Perché utilizzare un tipo di post personalizzato?
WP Mayor ha utilizzato più tipi di post personalizzati nel tempo, come quello delle offerte a vita che puoi vedere in questo momento.
Personalmente ho utilizzato i tipi di post personalizzati per molte cose.
Le più comuni sono sezioni di contenuto separate sui siti web. Ciò ha più senso quando il contenuto deve essere mostrato e comportarsi in modo diverso rispetto ai post e alle pagine integrati.
Immaginiamo che WP Mayor abbia anche un tipo di post dedicato "Notizie". Semplicemente registrando questo tipo di post personalizzato, si otterrebbero i seguenti vantaggi:
- Una voce "Novità" distinta nel menu in WP Admin.
- La possibilità di concedere agli utenti e ai ruoli utente funzionalità diverse per quel tipo.
- Avere diversi modelli per mostrare singole notizie sul frontend.
- Un archivio separato e un feed per le notizie.
- I metadati aggiuntivi dei post vengono archiviati e visualizzati solo per le notizie.
Ho anche utilizzato i tipi di post personalizzati per gli elementi di contenuto in vari plugin. Una volta ho creato una piattaforma di prenotazione per case vacanza, in cui case, prenotazioni e pagamenti costituivano ciascuno un tipo di post personalizzato distinto con attributi unici. È qualcosa che fanno anche la maggior parte dei plugin di e-commerce per WordPress.
In un altro caso, volevo registrare il contenuto di tutte le e-mail in uscita. Quindi, ho creato un tipo di post "Log" con il contenuto dell'e-mail e tutti i metadati allegati che erano visibili solo con le funzionalità appropriate nel backend di WordPress.
Infine, il plug-in Advanced Ads che ho sviluppato originariamente utilizzava un CPT per archiviare il contenuto dell'annuncio.
Questi sono solo alcuni esempi di tipi di post personalizzati. So di aver dimenticato di menzionare molti altri casi d'uso interessanti che ho incontrato nel corso degli anni.
Il vantaggio principale dei CPT in WordPress è che necessitano solo di poche righe di codice o di una rapida configurazione tramite un plugin, e WordPress si occupa di gran parte della logica necessaria per gestirli e visualizzarli sul tuo sito. Quindi, vediamo subito come creare tipi di post personalizzati WordPress.
Creazione di un tipo di post personalizzato
I tipi di post personalizzati possono essere creati manualmente o tramite un plugin.
Se non hai esperienza nella codifica, i plugin ti rendono molto più semplice creare tipi di post personalizzati.
Uno svantaggio dell'utilizzo di un plug-in è che il tuo tipo di post personalizzato scompare non appena elimini il plug-in. Sebbene probabilmente esista ancora nel database, WordPress non lo sa più nel frontend o nel backend.
Come sviluppatore che lo ha fatto decine di volte, preferisco ancora il metodo manuale. Tuttavia, ammetto con gioia che utilizzo anche plugin con belle UI se il Custom Post Type di WordPress viene utilizzato temporaneamente o per creare una vetrina per un cliente.
Decisioni per i tipi di post personalizzati
Nonostante il metodo che utilizziamo per creare il nostro tipo di post personalizzato, dobbiamo prima prendere alcune decisioni. Sebbene in teoria potresti modificarli in un secondo momento, ciò potrebbe avere un impatto notevole sul tuo sito e sulla configurazione, quindi è meglio pensarci in anticipo.
Pubblico o no?
La decisione principale sui tipi di post personalizzati riguarda chi dovrebbe vederli e interagire con essi. Con il tuo codice personalizzato o all'interno di un plugin, puoi scegliere se il CPT è visibile nel frontend, compresi archivi e singole pagine accessibili direttamente, e se gli utenti lo trovano tramite ricerca. Dovrebbe apparire nel backend del tuo sito WordPress con la sua voce di menu?
Mentre un CPT “Notizie” è probabilmente completamente visibile nel frontend, un registro interno o qualcosa come i pagamenti potrebbero essere limitati agli utenti con un ruolo specifico nel backend di WordPress.
Gerarchico
Potresti aver notato che i tipi di post di WordPress Post e Pagine si comportano in modo leggermente diverso. Le pagine non hanno un archivio nel frontend, ma puoi avere pagine genitore e figlio.
Quest'ultima è chiamata "gerarchia", che viene definita anche quando si crea il proprio tipo di post.
Per i tipi di post gerarchici, la pagina di modifica offre la possibilità di scegliere una pagina principale e un ordine.
L'ordine e la pagina principale potrebbero essere importanti durante la creazione automatica di menu o elenchi dalle pagine. La gerarchia è visibile anche nello slug URL. Se la mia pagina era "Risoluzione dei problemi" con "Documentazione" come pagina principale, l'URL finale potrebbe essere documentation/troubleshooting
.
Suggerimento: se disponi di un CPT con una gerarchia più profonda, ti consiglio di utilizzare il plug-in Pagine nidificate per organizzare rapidamente i post nell'ordine corretto.
Editor a blocchi o classico
Quando crei un tipo di post personalizzato, ti viene chiesto se mostrarlo nella "REST API" o meno. Questo termine tecnico fa una cosa cruciale: determina se il tuo CPT sta utilizzando l'editor a blocchi o la visualizzazione editor classica.
Come regola generale, l’utilizzo dell’editor di blocchi ha senso se il tuo tipo di post è simile al contenuto normale e desideri utilizzare i blocchi WordPress. Qualsiasi tipo di post personalizzato che non necessita di un'ampia porzione di schermo per i contenuti dovrebbe scegliere l'editor classico. Pertanto, non dovrebbe essere consegnato tramite l'API REST.
Slug e struttura degli URL
Un'altra decisione fondamentale che devi prendere è il nome dello slug CPT. Il nostro tipo di post "Notizie" potrebbe essere indicato come news
nell'URL, ma se hai nomi interni più fantasiosi, potresti scegliere una forma breve per gli URL del frontend.
Questa potrebbe essere una decisione importante per il tuo SEO, quindi prenditi qualche minuto per pensarci.
Elementi supportati
A seconda del tipo di post che stai creando, potresti anche voler decidere in anticipo se abilitare il supporto per i seguenti elementi:
- Titoli (abilitati per impostazione predefinita)
- L'editor visualizzato (abilitato per impostazione predefinita)
- Commenti
- Revisioni
- Autori
- Estratti
- Miniature
Ci sono molte altre opzioni per la messa a punto. Tuttavia, quanto sopra è la cosa più importante da considerare prima di utilizzare il nostro tipo di post personalizzato WordPress.
Crea un tipo di post personalizzato con un plugin
Con questo in mente, diamo un'occhiata alla creazione di tipi di post personalizzati utilizzando un plugin e poi facciamo lo stesso manualmente.
Sto scegliendo uno dei più popolari gratuiti di wordpress.org: Custom Post Type UI (CPTUI) di WebDevStudios.
La loro interfaccia è piuttosto semplice, con tutte le opzioni che ci si aspetterebbe da un plugin Custom Post Types. Tuttavia, rende anche chiaro che i tipi di post personalizzati sono ancora un concetto astratto da comprendere e non una funzionalità con cui un normale editore di WordPress dovrebbe armeggiare senza una conoscenza approfondita delle opzioni.
Suggerimento: personalmente sono conservatore riguardo alle opzioni "pubbliche" per i miei CPT e le limito il più possibile riguardo a chi dovrebbe vederle nel frontend e chi dovrebbe essere in grado di modificarle nel backend. Se necessario, puoi sempre concedere più accessi in un secondo momento.
Vantaggi dell'interfaccia utente del tipo di post personalizzato
Ci sono alcune cose che mi piacciono di questo plugin che altri potrebbero o meno avere.
Di solito creo i miei CPT manualmente, quindi so che scrivere le etichette richiede molto tempo. Ce ne sono circa tre dozzine se vuoi modificarli tutti per menzionare il nome del tuo CPT. Come puoi vedere nello screenshot qui sopra, il plug-in dell'interfaccia utente Custom Post Type ha un'opzione per compilare automaticamente queste etichette per te. Puoi comunque modificarli successivamente nell'interfaccia.
Successivamente, posso salvare il mio tipo di post personalizzato e modificarlo in seguito . Posso anche cambiare lo slug e il plugin migrerà tutti i post di quel tipo . Anche se cercherei di prevenire una situazione in cui ne avrei bisogno, è bene sapere che è possibile e gestito dal plugin.
L'interfaccia utente del tipo di post personalizzato mantiene una panoramica dei miei tipi di post . Anche se sembra un po' complicato, è molto più facile da rivedere rispetto al codice personalizzato. Mi piace anche vedere l'elenco dei modelli nell'ultima colonna.
Questi modelli fanno parte della magia dei tipi di post personalizzati di WordPress. Se il nostro CPT di notizie utilizzasse le news
slug, WordPress cercherebbe automaticamente un file chiamato archive-news.php
nel tuo tema per visualizzare la pagina di archivio di quel tipo di post o single-news.php
per una singola pagina di notizie. Per ulteriori informazioni, vedere Gerarchia dei modelli.
Generazione di codice con CPTUI
La caratteristica che alla fine mi ha fatto consigliare l'interfaccia utente Custom Post Type è stato lo strumento per esportare il CPT in codice PHP . Sotto CPT UI > Tools > Get Code, troverai il codice PHP da utilizzare nel tuo plugin o functions.php
. Complimenti agli sviluppatori del plugin per non aver bloccato le persone.
Ciò rende CPTUI uno strumento ideale per gli sviluppatori poiché possiamo impostare rapidamente un tipo di post personalizzato tramite l'interfaccia e quindi ottenere il codice PHP per utilizzarlo. Possiamo anche consentire ai nostri clienti di configurarlo su un sito di prova, con tutte le etichette e così via, e poi di migrarlo dove ne abbiamo bisogno.
L'unica opzione che non sono riuscito a trovare nel plugin è rimuovere il tipo di post personalizzato con tutte le sue entità. In generale, se elimini un plugin o un codice, i post personalizzati rimarranno nel database. Tuttavia, ci sono plugin dedicati per ripulirlo.
Utilizzando il codice
Se sei uno sviluppatore e desideri implementare un tipo di post personalizzato utilizzando il codice, lascia che ti indichi le sezioni pertinenti nella documentazione di WordPress.
La funzione principale per registrare un nuovo tipo di post personalizzato è la funzione Register_post_type. I suoi parametri ti consentono di impostare tutte le opzioni che ho menzionato sopra.
Tutti i tipi di post sono archiviati nella tabella wp_posts
nel tuo database. Il campo post_type
determina a quale voce appartiene un tipo di post.
Puoi utilizzare i metadati dei post se il tuo tipo di post personalizzato riguarda più del semplice contenuto. Questi dati sono archiviati in wp_postmeta
.
A proposito, alcuni plugin utilizzano tabelle personalizzate per gestire i tipi di contenuto. Non seguire questa strada a meno che non sia realmente necessario poiché non saresti in grado di utilizzare tutte le funzionalità e le funzionalità integrate di WordPress fornite con l'API Custom Post Types.
Estendi i tipi di post personalizzati
Se il tuo tipo di post personalizzato è pubblico, potresti voler personalizzarlo ancora di più. Ecco alcune opzioni.
Campi personalizzati e Meta Box
I CPT più avanzati, come eventi o articoli del negozio, hanno bisogno di qualcosa di più del semplice contenuto. È qui che entrano in gioco i campi personalizzati. Offrono campi di input per strutturare i dati in vari modi. Ad esempio, un tipo di post "Evento" potrebbe richiedere una data di inizio e di fine o una sede in modo che gli eventi possano essere visualizzati e filtrati.
Sebbene sia possibile aggiungere campi personalizzati e meta box con codice personalizzato, un eccellente plugin per questo è il ben noto Advanced Custom Fields. Ha così tante opzioni ed è così ben gestito che nemmeno io, come sviluppatore, codificherei campi personalizzati sui miei siti.
Tassonomie personalizzate
Poiché il tipo di post predefinito "Post" può essere ordinato con "Categorie" e "Tag", puoi registrare tassonomie anche per il tuo tipo di post personalizzato.
Anche il plug-in dell'interfaccia utente Custom Post Type che ho consigliato sopra ti aiuta a crearli.
Gestione delle capacità
Puoi utilizzare plugin come Membri per creare un nuovo ruolo per gli autori sul tuo sito che possono solo creare e modificare il tuo nuovo tipo di post personalizzato o modificare i ruoli utente correlati esistenti. Questo è consigliato se il tuo flusso di lavoro editoriale è diverso per ogni tipo di post.
Cambiare i tipi di post
Attualmente sto riorganizzando i contenuti in una knowledge base interna creata con WordPress. I post e le pagine hanno obiettivi molto diversi qui. Alcuni di loro hanno cambiato obiettivo, quindi avevo bisogno di una soluzione per cambiare il tipo di post.
Anche se non consiglierei di farlo alla leggera con un tipo di post pubblico, non c'è alcun problema nel farlo su un sito non pubblico con tipi di post simili. Per raggiungere questo obiettivo, ho installato Post Type Switcher, un eccellente plugin che ti consente di farlo senza problemi. Dopo averlo installato, il plugin aggiungerà una sezione “Tipo di post” nella schermata “Modifica post”. Puoi utilizzare questa interfaccia per modificare i tipi di post secondo necessità.
Conclusione
Considero ancora i Custom Post Types una funzionalità fondamentale che ha permesso a WordPress di prosperare nell'ultimo decennio e oltre. È la base che ha trasformato il nostro CMS preferito da semplice piattaforma di blogging in uno strumento versatile per la gestione di eventi o acquisti online.
Quando creo plug-in utilizzati su molti siti Web, incontro ancora il codice per creare nuovi tipi di post. Ma quando creo siti per me e per i clienti, utilizzo i plugin. Rendono la creazione e la modifica dei tipi di post personalizzati molto più semplici e hanno un'interfaccia utente molto migliore di quella che potrei mai creare.