Plugin WordPress WordPress

Come creare Custom Post Type e tassonomie personalizzate su WordPress

Tiziano Fogliata

I Custom Post Type, conosciuti anche come CPT o Post Personalizzati, sono una delle funzionalitร  che hanno reso WordPress un Content Management System cosรฌ popolare per la realizzazione di siti molto differenti dai tradizionali blog.

WordPress รจ un CMS (Content management system) piuttosto flessibile che ben si adatta alla realizzazione di diverse tipologie di sito. Blog, magazine, siti aziendali, e-commerce e molte altre soluzioni sono, piรน o meno facilmente, realizzabili partendo da unโ€™installazione di WordPress.

Se perรฒ hai la volontร , o la necessitร , di spingerti un poโ€™ oltre, perchรฉ le classiche due tipologie di contenuti (articoli e pagine) messe a disposizione da WordPress non ti bastano, devi entrare nel mondo dei CPT.

In questo video ti mostro come creare Custom Post Type e Custom Taxonomies su WordPress utilizzando il plugin gratuito Custom Post Type UI.

A cosa servono i Custom Post Type

Oltre ai tipi di contenuto standard previsti da WordPress, รจ possibile creare post type personalizzati (chiamati anche CPT).

Probabilmente ti sarร  capitato, dopo aver installato alcuni temi per WordPress, di veder comparire nel menu di amministrazione alcune voci come ad esempio Portfolio, Testimonianzeโ€ฆ Questi sono classici casi di Custom Post Type.

I CPT sono molto utili quando hai la necessitร  di gestire contenuti sul tuo sito che non rientrano nelle classiche tipologie articolo o pagina. In un altro articolo ho elencato alcune ragioni ed esempi per spiegare perchรฉ e quando usare i Custom Post Type di WordPress.

Gli articoli e le pagine in un sito WordPress sono tipi di contenuto piuttosto flessibili, ma ci sono casi nei quali รจ necessario, o semplicemente piรน logico, creare un tipo di contenuto dedicato.

Immagina ad esempio di voler creare delle voci di un glossario. Ogni singola voce del glossario non ha senso che sia ordinata in ordine cronologico come gli articoli, perรฒ potrebbe aver bisogno di essere inserita in una categoria (cosa che le pagine non permettono). Ecco quindi un classico esempio di contenuto non adatto nรฉ agli articoli nรฉ alle pagine.

Custom Taxonomies (Tassonomie personalizzate)

Oltre ai Custom Post Type รจ possibile creare anche delle Custom Taxonomies, o tassonomie personalizzate.

Queste tassonomie personalizzate si comportano come le Categorie (ossia con un ordine gerarchico) oppure come i Tag (quindi senza alcun ordine gerarchico) da associare ai vari Custom Post Type, oppure da aggiungere ai tradizionali post type di WordPress. Qui trovi un approfondimento su Categorie e Tag di WordPress.

Si tratta, in pratica, di un modo per organizzare e classificare i contenuti.

Potresti ad esempio creare un Custom Post Type denominato โ€œfilmโ€, da utilizzare per inserire le recensioni dei tuoi film preferiti e accompagnare questo CPT con una tassonomia personalizzata denominata โ€œgeneriโ€, cosรฌ da poter organizzare i film in base al loro genere (fantascienza, thriller, horrorโ€ฆ). Potresti creare inoltre un ulteriore tassonomia denominata โ€œnazioniโ€ con la quale organizzare i film anche in base alla loro nazionalitร .

Custom Fields (Campi personalizzati)

Dopo aver introdotto il tema dei Custom Post Type e delle tassonomie personalizzate (custom taxonomies), รจ il caso di parlare anche dei Custom Fields, o campi personalizzati. Ti capiterร  spesso di vedere associati questi tre argomenti e la cosa รจ abbastanza normale.

Quando infatti inizi a creare un contenuto personalizzato รจ probabile che tu abbia lโ€™esigenza di creare anche delle categorie o dei tag personalizzati, in modo da raccogliere e organizzare piรน facilmente il nuovo contenuto.

Inoltre, รจ altrettanto probabile che la nuova tipologia di contenuto possa aver bisogno di campi aggiuntivi per inserire le informazioni, campi aggiuntivi rispetto ai classici titolo e contenuto che utilizzi per gli articoli e le pagine.

Tornando allโ€™esempio del CPT โ€œfilmโ€, potrebbe aver senso disporre di un campo nel quale inserire lโ€™anno di uscita del film, di un campo nel quale scrivere la durata del filmโ€ฆ

Disporre di campi aggiuntivi ti consente di organizzare, gestire e presentare meglio le varie informazioni associate singolo film. Decisamente meglio rispetto ai inserire tutti i dati in unโ€™unica area di testo, come si fa con le pagine con gli articoli.

Potresti infatti avere la tentazione di gestire questi dati aggiuntivi usando il classico formato articolo, inserendo tutte le informazioni relative al film allโ€™interno di unโ€™unica area di testo, come se fossero il contenuto di un post.

Tale opzione perรฒ non รจ ottimale se hai in previsione di inserire un numero elevato di contenuti. Non ti permetterร  infatti di gestire in modo efficiente le varie informazioni, dato che sono tutte inserite in un unico campo. Quindi non potrai sfruttarle per filtrare e ordinare i tuoi contenuti e non potrai nemmeno estrarle singolarmente per presentare i contenuti come meglio desideri. In poche parole: ti sconsiglio questa strada.

Dopo questa necessaria introduzione vediamo quindi come creare queste tipologie di contenuto personalizzate.

Per creare questi Post Personalizzati esistono fondamentalmente due alternative:

  • la prima consiste nel creare a mano il codice (da richiamare nel file functions.php del tuo tema oppure sotto forma di plugin creato ad hoc);
  • la seconda รจ quella di appoggiarsi a dei plugin specializzati per questo compito. Questa seconda opzione รจ ovviamente molto piรน semplice e permette anche anche agli utenti meno tecnici di sfruttare le incredibili potenzialitร  dei Custom Post Type.

Creare un CPT รจ molto semplice, grazie ad esempio a un plugin come Custom Post Type UI. Questo plugin gratuito facilita notevolmente la creazione di Custom Post Type e di tassonomie personalizzate, ma non รจ di alcun aiuto per quel che riguarda la creazione dei custom field. Inoltre Custom Post Type UI, almeno nella sua versione gratuita, non si occupa di come personalizzare lโ€™aspetto dei CPT nel tema del tuo sito WordPress. Per fare questo รจ necessario mettere mano al codice del tuo tema oppure ricorrere ad altre soluzioni che ti mostrerรฒ in un prossimo post che pubblicherรฒ tra qualche giorno.

Nel video presente in questa pagina ti mostro come utilizzare Custom Post Type UI per aggiungere Custom Post Type e tassonomie personalizzate in un sito WordPress.

Come hai visto la possibilitร  di creare Custom Post Type amplia di molto il ventaglio delle possibilitร  offerte da WordPress. Un esempio รจ quello di un sistema personalizzato per gestire le recensioni sul tuo sito.

Oltre a Custom Post Type UI, altri plugin che permettono di creare facilmente Custom Post Type e tassonomie personalizzate sono:

Tra le soluzioni elencate, quella che utilizzo piรน spesso รจ Advanced Custom Fields.

Scegli di ricevere gratuitamente via email consigli utili per creare, gestire e migliorare il tuo sito WordPress

Questo campo serve per la convalida e dovrebbe essere lasciato inalterato.

13 commenti su “Come creare Custom Post Type e tassonomie personalizzate su WordPress”

  1. Ciao Tiziano, complimenti per questa guida e per le tante altre sempre molto utili che hai scritto. Vorrei farti una domanda: mettiamo che un blog che tratti di auto volesse aggiungere un contenuto tipo “il gadget lifestyle della settimana” pensando che chi ama le auto potrebbe essere interessato anche a quel mondo. Si tratterebbe di pubblicare un post la settimana con una solo foto e poche righe di informazione, un mini contenuto insomma. Visto che non sarebbero degli articoli approfonditi e fuori dal topic principale, tu creeresti una sezione a parte del blog (auto) tramite CPT oppure aggiungeresti una categoria mettendola tra tutte quelle che trattano le quattro ruote?! Grazie mille in anticipo!

    Rispondi
    • Ciao Roberto, trovo decisamente piรน sensato utilizzare una categoria aggiuntiva piuttosto che complicarti la vita con un nuovo CPT.

      Rispondi
  2. Ciao Tiziano e prima di tutto complimenti per il sito e grazie per le guide, le ho trovate illuminanti. Premesso che non sono un programmatore, mi trovo a dover pensare in fretta a cosa utilizzare per risolvere il mio problema di avere aree riservate in funzione del profilo utente (come se fossero piรน siti nello stesso dominio, profili utenti molto diversi tra loro ma per lo stesso argomento tipo… medico da un lato e paziente dall’altro che, entrambi usano l’ “aspirina” ma evidente che hanno profili e “linguaggi” diversi ) Pensavo di farlo con i vari plugin che trovo in in rete: 1. Custom Post Type (ragione di questo commento) , 2. Ultimate member, 3.Simply membership, oppure 4. altro che non conosco… cosa mi suggeriresti?
    un grazie anticipato e …buone vacenza a tutti!
    Graziano

    Rispondi
    • Ciao Graziano. Sul sito ho giร  scritto di Toolset e delle funzionalitร  di questo plugin per la creazione di Custom Post Type e viste personalizzate. Grazie perรฒ a un altra funzione di questo plugin รจ anche possibile impostare permessi di accesso diversificati ai vari contenuti. Non so se puรฒ essere la soluzione adatta a te, ma ti consiglio di dargli un’occhiata.

      Rispondi
  3. Ciao Tiziano, intanto grazie per la tua chiarezza. Vorrei farti un paio di domande: 1ยฐ come eliminare un CPT (ho fatto diverse prove ora mi ritrovo quelle che non mi servono piรน e non so come fare per eliminarle); 2ยฐ come fare per visualizzare i singoli post in un’unica pagina. Sto creando un Custom Post Type per le FAQ e vorrei che ogni singolo post venisse visualizzato automaticamente nella pagina FAQ presente nel menu principale del sito. Grazie in anticipo!
    Giuliana

    Rispondi
    • Ciao Giuliana, se hai usato CPT UI, basta andare nella sezione “Aggiungi/Modifica tipi di contenuto” e puoi modificare o eliminare i CPT creati in precedenza.

      Se vuoi visualizzare tutti i CPT creati in un’unica pagina devi lavorare a livello di codice creando dei template specifici, oppure usi una soluzione come Toolset o CPT UI Extended (quest’ultima non l’ho mai usata).

      Rispondi
  4. Ciao Tiziano grazie per il tutoria. Non avendo al funzione GP Hook, come posso fare? Dove inserisco il codice e sopratutto da dove lo prendo? Grazie

    Rispondi
    • Ciao, il codice per la nuova tassonomia viene essere generato dal plugin Custom Post Type UI. Gli hook di GeneratePress sono disponibili solo se usi questo tema, altrimenti devi ricorrere agli hook standard di WordPress o a quelli eventualmente messi a disposizione dal tuo tema. Se perรฒ non hai mai messo mano a un file php, ti sconsiglio di fare questo tipo di interventi senza prima approfondire la conoscenza di come funziona WordPress.

      Rispondi
  5. Grazie Tiziano dei tutorial. Hai mai fatto un tutorial per creare uno specifico ruolo che gestisca solo un custom post type? ad Esempio: CPT Books, Visibile e gestibile solo dall’user role “Bibliotecario”? Probabilmente questo utente รจ giร  anche Editor?
    Grazie mille in anticipo comunque.

    Rispondi
  6. Ciao Tiziano, grazie per la tua guida.
    Ho una domanda, con “Custom Post Type UI” come si puรฒ nascondere dallo slug la tassonomia genitore? Il corrispettivo di /categoria/ per intenderci.
    Normalmente dai permalink di Wp basta aggiungere ‘.’
    In questo caso aggiungendolo a “Rewrite” restituisce un errore 404.

    Grazie in anticipo!

    Rispondi
    • Puoi provare a impostare / come โ€œSlug personalizzato per rewriteโ€ e poi a impostare โ€œRewrite con Frontโ€ su Falso. Eventualmente poi aggiorna i permalink. Rimuovere lo slug puรฒ ovviamente generare conflitti con altre tassonomie o con altri post che incidentalmente potrebbero avere lo stesso titolo.

      Rispondi
      • Ciao Tiziano, grazie per la risposta.
        Si, รจ proprio quello che avevo fatto, ma non funziona, pensavo di sbagliare.
        Continua a mostrarlo, forse c’รจ un bug.
        Se invece inserisco il “.” scompare ma restituisce errore 404.
        Grazie

        Rispondi

Lascia un commento