Guida ai Custom Post Types: quando e come usarli

Perché i Custom Post Types sono fondamentali in WordPress

Guida completa ai Custom Post Types

WordPress è nato come piattaforma di blogging, ma nel corso degli anni si è evoluto fino a diventare un vero e proprio CMS (Content Management System) capace di gestire qualsiasi tipo di contenuto. Uno degli strumenti più potenti che permettono questa flessibilità sono i Custom Post Types (CPT), cioè tipi di contenuto personalizzati. Se hai mai pensato che “Articoli” e “Pagine” non bastano per organizzare i tuoi contenuti, probabilmente hai bisogno di un CPT. In questa guida completa scopriremo:

  • Cosa sono i Custom Post Types
  • Quando ha senso utilizzarli
  • Come crearli manualmente o tramite plugin
  • Esempi pratici di utilizzo
  • Best practices per una gestione efficace

Alla fine dell’articolo avrai una chiara comprensione di come i CPT possano trasformare la struttura del tuo sito WordPress, rendendolo più professionale e scalabile.


Cosa sono i Custom Post Types in WordPress?

In WordPress, ogni contenuto è un “post”. Ma non tutti i post sono uguali. Ad esempio:

  • Post (Articoli) → pensati per contenuti dinamici come news o blog post.
  • Page (Pagine) → adatte a contenuti statici come “Chi siamo” o “Contatti”.
  • Attachment → per i media caricati (immagini, video, documenti).
  • Revision → versioni salvate degli articoli.

Oltre a questi tipi predefiniti, WordPress ti consente di creare i tuoi tipi personalizzati di contenuto: i Custom Post Types.

Un CPT è quindi una categoria di contenuti con caratteristiche proprie. Per esempio, un sito di ricette può avere un CPT chiamato “Ricette”, distinto dagli articoli del blog. Oppure un sito di cinema può avere un CPT chiamato “Film”, con campi dedicati a regista, anno di uscita, genere e valutazione.


Quando usare i Custom Post Types?

Non sempre serve un CPT: a volte categorie e tag bastano. Ma ci sono situazioni in cui diventano indispensabili. Vediamo i casi più comuni:

1. Quando hai contenuti con struttura diversa

Se gestisci recensioni di libri, probabilmente vorrai campi dedicati come “Autore”, “Genere”, “Casa editrice”. Questi dati non hanno senso in un normale articolo, ma in un CPT sì.

2. Quando i contenuti meritano un’area separata

Gli articoli del blog e le testimonianze clienti hanno obiettivi diversi. Creare un CPT “Testimonianze” evita confusione e permette una gestione più ordinata.

3. Quando vuoi personalizzare il backend

Un CPT può avere un’interfaccia amministrativa personalizzata, con colonne dedicate e un menu laterale nel pannello WordPress. Questo semplifica la vita a chi gestisce i contenuti.

4. Quando hai bisogno di URL dedicati

Con un CPT puoi avere permalink personalizzati, ad esempio:

  • www.miosito.it/ricette/tiramisu
  • www.miosito.it/eventi/conferenza-wordpress

5. Quando stai costruendo un sito complesso

Portali di e-commerce, directory, siti immobiliari, riviste online: tutti questi progetti traggono grande vantaggio dai CPT, perché permettono di separare in maniera netta i vari tipi di contenuto.


Esempi pratici di Custom Post Types

Per capire meglio, ecco alcuni esempi concreti di utilizzo:

  • Ricette → campi: ingredienti, tempo di preparazione, difficoltà.
  • Eventi → campi: data, luogo, biglietti disponibili.
  • Portfolio → campi: cliente, anno, link al progetto.
  • Prodotti → campi: prezzo, disponibilità, SKU.
  • Film → campi: regista, anno, valutazione.

Grazie ai CPT, un sito non è più un semplice blog ma un portale ricco e organizzato.


Come creare un Custom Post Type in WordPress

Esistono due strade principali per creare un CPT:

Creazione manuale via codice

Questa opzione è consigliata agli sviluppatori o a chi vuole mantenere il sito leggero senza plugin aggiuntivi.

Si usa la funzione register_post_type() all’interno del file functions.php del tema o, meglio ancora, in un plugin dedicato.

Esempio di codice:

function crea_cpt_ricette() {
$labels = array(
'name' => 'Ricette',
'singular_name' => 'Ricetta',
'menu_name' => 'Ricette',
'name_admin_bar' => 'Ricetta'
);

$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'ricette'),
'supports' => array('title', 'editor', 'thumbnail', 'custom-fields'),
'menu_icon' => 'dashicons-carrot',
);

register_post_type('ricette', $args);
}
add_action('init', 'crea_cpt_ricette');

Con questo snippet avrai un nuovo menu “Ricette” nel backend di WordPress, completo di editor e possibilità di aggiungere immagini in evidenza.

2. Creazione tramite plugin

Per chi non ama il codice, ci sono plugin che semplificano la creazione dei CPT:

Con questi strumenti puoi creare e gestire CPT tramite un’interfaccia grafica, senza scrivere PHP.


Tassonomie personalizzate e CPT

I CPT danno il meglio se usati insieme alle tassonomie personalizzate.Le tassonomie sono sistemi di classificazione dei contenuti. WordPress offre già Categorie e Tag, ma puoi crearne di nuovi.

Esempi:

  • CPT “Ricette” + Tassonomia “Tipo di cucina” (italiana, francese, giapponese).
  • CPT “Eventi” + Tassonomia “Tipologia” (conferenza, concerto, workshop).

Così i contenuti diventano ancora più organizzati e facilmente filtrabili.


Custom Fields: arricchire i CPT

Spesso i CPT hanno bisogno di campi extra. Qui entrano in gioco i Custom Fields, ossia campi personalizzati che aggiungono informazioni strutturate.

Esempi:

  • CPT “Film” → Campo “Anno di uscita”
  • CPT “Prodotto” → Campo “Prezzo”
  • CPT “Evento” → Campo “Data e ora”

Il plugin più famoso per gestire i Custom Fields è Advanced Custom Fields (ACF), che permette di aggiungere campi di testo, immagini, date, relazioni e molto altro.


Vantaggi dei Custom Post Types

  • Organizzazione → separano i contenuti in aree logiche.
  • Scalabilità → ideali per siti che crescono nel tempo.
  • Professionalità → permettono di strutturare il sito come un vero CMS.
  • SEO → URL personalizzati e dati strutturati migliorano la visibilità nei motori di ricerca.
  • Flessibilità → si combinano con tassonomie, campi personalizzati e temi.

Svantaggi e possibili rischi

Come ogni strumento, i CPT vanno usati con attenzione.

  • Dipendenza da plugin → se usi un plugin per creare CPT e lo disattivi, rischi di perdere l’accesso ai contenuti.
  • Compatibilità → alcuni temi non supportano bene i CPT personalizzati.
  • Manutenzione → in siti complessi con molti CPT, serve una strategia di lungo periodo per evitare caos.

Per questo è meglio creare CPT tramite codice o plugin affidabili e mantenerli separati dal tema, così restano portabili in futuro.


Best Practices per i Custom Post Types

  1. Usa un plugin dedicato per il codice → evita di inserire i CPT nel file functions.php del tema.
  2. Scegli uno slug significativo → ad esempio “ricette” e non “cpt1”.
  3. Abbina tassonomie personalizzate per una gestione più efficace.
  4. Definisci i permessi utente se i CPT sono gestiti da più persone.
  5. Pensa alla SEO → assicurati che i CPT siano indicizzabili e abbiano URL chiari.
  6. Documenta la struttura → utile in progetti complessi o quando lavori in team.

CPT e Gutenberg: compatibilità e blocchi personalizzati

Con l’arrivo dell’editor a blocchi Gutenberg, i CPT si sono ulteriormente evoluti. Oggi puoi creare:

  • Blocchi personalizzati collegati ai campi del CPT
  • Template predefiniti per ogni tipo di contenuto
  • Layout dinamici che attingono dai dati dei CPT

Questo rende WordPress ancora più potente, al punto da competere con CMS professionali e framework personalizzati.


Massimizzare il potenziale del tuo sito con i CPT

I Custom Post Types sono uno degli strumenti più potenti di WordPress. Grazie a loro puoi trasformare un semplice blog in un portale complesso e strutturato, gestire contenuti speciali e offrire un’esperienza migliore sia agli utenti che agli amministratori.

Che tu sia uno sviluppatore, un web designer o un imprenditore digitale, imparare a usare i CPT è fondamentale per portare i tuoi progetti WordPress al livello successivo.

Inizia sperimentando con un plugin come Custom Post Type UI oppure, se ami il codice, prova a scrivere la tua prima funzione register_post_type(). Ti accorgerai subito di quanto i CPT possano fare la differenza.