Custom Post Types in WordPress

di | 30 Aprile 2019

WordPress, di default come tipologia di contenuto, ci permette di utilizzare gli articoli (post), le pagine statiche (page) e i media (attachment).

Questa tipologia di contenuti, è sufficiente finchè si realizza un blog (ricordiamoci che WP era stato creato per questo) ma inizia a stare stretta quando si realizzano progetti di diverso tipo.

Infatti, utilizzando i custom post types puoi creare diverse tipologie di contenuti, simili ai post e alle pagine, ma che contengono un diverso set di dati.

Avrai inoltre, una voce apposita nel menu di amministrazione proprio per gestire i custom post types aggiunti.

ma andiamo per ordine, iniziamo a rispondere alla seguente domanda

Cos’è un Custom Post Type?

A differenza di quanto dice il nome, un post type può essere usato per ogni tipo di contenuto, come ad esempio il portfolio, i testimonial, gli eventi etc.

Un post type non è altro che un articolo (post) con un differente nome. Uno dei post type di default, oltre agli articoli, sono le pagine.

A partire dalla versione 3.0 di WP è comunque possibile aggiungerne di nuovi in modo piuttosto semplice.

In ogni caso bisogna stare attenti a non confondere i custom post types con le tassonomie (taxonomies) che permettono di raggruppare i post tra di loro. Le categorie e i tag sono un esempio di tassonomia in WordPress.

Come creare i custom post types

Abbiamo sostanzialmente due modi per creare un nuovo custom post type: manualmente o con l’ausilio di un plugin.

Creazione di custom post types maualmente

In questo caso dobbiamo semplicemente inserire il codice nel file functions.php del nostro tema.

La funzione che viene utilizzata per aggiungere un custom post type in WordPress si chiama register_post_type().

A questa funzione possiamo passare un certo numero di parametri la cui lista è consultabile nell’apposita pagina del Codex di WordPress

Di seguito comunque il codice per registrare il post type “recensioni” nel nostro sito.

function recensioni_post_type() {
  register_post_type( 'recensioni',
    array(
      'labels' => array(
        'name' => __( 'Recensioni' ),
        'singular_name' => __( 'Recensione' )
      ),
      'public' => true,
      'has_archive' => true,
    )
  );
}
add_action( 'init', 'recensioni_post_type' );

Ovviamente basta cambiare la parola “recensioni” per cambiare il nome del post type con quello che si preferisce.

Creazione di custom post types con un plugin

In questo caso mi sento di consigliare Custom Post Types Ui un plugin estremamente semplice per la creazione di custom post types e di custom taxonomies.

Dopo averlo installato, compare nel menu di amministrazione la voce “CPT UI”, da cui possiamo scegliere i post types o le tassonomie da creare / modificare.

Aggiungere custom post types con plugin

Una particolarità veramente eccezionale di questo plugin è rappresentata dal tab “import/export post types”: da qui possiamo copiare il codice php che viene generato dal plugin andarlo a mettere nel nostro file function.php e poi disattivare il plugin.

In questo modo, possiamo guadagnare qualcosa in termini di velocità di caricamento che sappiamo essere un requisito importantissimo per un buon SEO.