WordPress Custom Post Types: Guida alla Creazione

Cosa sono i Custom Post Types

I Custom Post Types (CPT) permettono di estendere WordPress oltre i post standard e le pagine. Con i CPT puoi creare tipi di contenuto specifici come portfolio, prodotti, eventi, testimonianze, o qualsiasi altro tipo di dato strutturato. Ogni CPT ha il proprio pannello di amministrazione, permalink, archivi, e tassonomie, fornendo un’esperienza di gestione contenuti su misura.

Registrare un CPT con register_post_type

La funzione register_post_type() si chiama nell’hook init. I parametri principali sono labels (nome singolare/plurale), public (visibile nell’admin), has_archive (archivio frontend), supports (title, editor, thumbnail, excerpt), menu_icon (Dashicon o SVG), e rewrite (slug permalink). Esempio: register_post_type(‘product’, array(‘labels’ => array(‘name’ => ‘Prodotti’), ‘public’ => true, ‘has_archive’ => true)).

Labels e Interfaccia Amministrativa

Le labels personalizzano l’interfaccia admin per il CPT: name (nome plurale), singular_name, add_new_item, edit_item, view_item, search_items, not_found. labels ‘all_items’, ‘menu_name’ controllano la navigazione. Labels ben scritte rendono l’esperienza admin professionale e intuitiva per i clienti. Usa _x() per contestualizzare le traduzioni.

Supporti e Features

Il parametro ‘supports’ abilita le features standard: title, editor, thumbnail (immagine in evidenza), excerpt, author, trackbacks, custom-fields, comments, revisions, page-attributes (ordine e gerarchia). Per CPT gerarchici (come pagine), imposta ‘hierarchical’ => true. I CPT possono anche supportare blocchi Gutenberg abilitando ‘show_in_rest’ => true.

Tassonomie per CPT

I CPT supportano tassonomie integrate (category, post_tag) e personalizzate. Usa register_taxonomy() per creare tassonomie come ‘brand’ o ‘genre’. Collega al CPT con ‘taxonomies’ => array(‘brand’). Le tassonomie possono essere gerarchiche (come categorie) o non gerarchiche (come tag). La relazione many-to-many tra CPT e tassonomie permette categorizzazione flessibile.

Meta Box e Custom Fields

I CPT spesso richiedono campi aggiuntivi. add_meta_box() crea meta box personalizzati nell’editor. I dati si salvano con l’hook save_post. Per CPT complessi, framework come CMB2, ACF (Advanced Custom Fields), o Meta Box semplificano la creazione di interfacce ricche con campi di vario tipo: text, WYSIWYG, image, gallery, repeater, relationship.

REST API e Gutenberg

Imposta ‘show_in_rest’ => true per esporre il CPT tramite REST API (/wp/v2/products). Questo abilita l’editor Gutenberg e permette integrazioni headless. I meta field personalizzati vanno registrati nel REST API con register_meta(). Per CPT con molti dati, considera la risposta REST personalizzata per includere campi meta e tassonomie annidate.

Permalink e Rewrite Rules

Il parametro ‘rewrite’ controlla gli URL del CPT: ‘slug’ => ‘products’ per permalink personalizzati, ‘with_front’ => false per evitare prefissi. Dopo aver registrato un CPT, visita Settings > Permalinks e salva per flushare le rewrite rules. Per CPT condivisi in plugin, flusha le regole all’attivazione con register_activation_hook() per non appesantire ogni richiesta.

Conclusione

I Custom Post Types sono la base per trasformare WordPress in un CMS versatile. Permettono di modellare qualsiasi tipo di contenuto con interfacce su misura, tassonomie dedicate, e campi personalizzati. Con il supporto REST API e Gutenberg, i CPT moderni sono pronti per architetture headless e block editing. Padroneggiare i CPT รจ essenziale per sviluppo WordPress professionale.

Leave a Reply

Your email address will not be published. Required fields are marked *