Come creare un Custom Post Type

Come creare un Custom Post Type in WordPress senza plugin.

Come creare un Custom Post Type personalizzato in WordPress è un argomento molto interessante da affrontare. Nel precedente articolo ti ho illustrato un paio di esempi per capire cosa sono e cosa servono, se non hai letto l’articolo cosa aspetti! Clicca qui! Ora parleremo di come creare un Custom Post Type che da ora chiameremo CPT in WordPress senza l’utilizzo dei plugin.

Come creare un Custom Post Type: primo passo

Dopo la premessa fatta nel precedente articolo, se ancora non hai letto approfittare ora prima di addentrarti nella guida cosi avrai idea di cosa stiamo facendo,  veniamo alla parte più interessante e vediamo quindi come creare un Custom Post Type tramite il file functions.php.

 

Per definire il nostro nuovo post type dovremo utilizzare la funzione register_post_type();  Qundi apriamo nell’editor il file functions.php e iniziamo a scrivere il codice necessario. In questo esempio sto creando un CPT per una collezione di cd. Copia il codice nel file e salva.

function cd_custom_post() {
// creo e registro il custom post type
register_post_type( ‘cd’, /* nome del custom post type */
// definisco le varie etichette da mostrare nei menù
array(‘labels’ => array(
‘name’ => ‘CD’, /* nome, al plurale, dell’etichetta del post type. */
‘singular_name’ => ‘CD’, /* nome, al singolare, dell’etichetta del post type. */
‘all_items’ => ‘Tutti i CD’, /* testo nei menu che indica tutti i contenuti del post type */
‘add_new’ => ‘Aggiungi nuovo’, /*testo del pulsante Aggiungi. */
‘add_new_item’ => ‘Aggiungi nuovo cd’, /* testo per il pulsante Aggiungi nuovo post type */
‘edit_item’ => ‘Modifica CD’, /*  testo modifica */
‘new_item’ => ‘Nuovo CD’, /* testo nuovo oggetto */
‘view_item’ => ‘Visualizza CD’, /* testo per visualizzare */
‘search_items’ => ‘Cerca CD’, /* testo per la ricerca*/
‘not_found’ =>  ‘Nessun CD trovato’, /* testo se non trova nulla */
‘not_found_in_trash’ => ‘Nessun CD trovato nel cestino’, /* testo se non trova nulla nel cestino */
‘parent_item_colon’ => ”
), /* fine dell’array delle etichette del menu */
‘description’ => ‘Raccolta di CD del portale’, /* descrizione del post type */
‘public’ => true, /* definisce se il post type sia visibile sia da front-end che da back-end */
‘publicly_queryable’ => true, /* definisce se possono essere fatte query da front-end */
‘exclude_from_search’ => false, /* esclude (false) il post type dai risultati di ricerca */
‘show_ui’ => true, /* definisce se deve essere visualizzata l’interfaccia di default nel pannello di amministrazione */
‘query_var’ => true,
‘menu_position’ => 8, /* definisce l’ordine in cui comparire nel menù di amministrazione a sinistra */
‘menu_icon’ => get_stylesheet_directory_uri() . ‘/img/mia-icona.png’, /* imposta l’icona da usare nel menù per il posty type */
‘rewrite’   => array( ‘slug’ => ‘cd’, ‘with_front’ => false ), /* specificare uno slug per leURL */
‘has_archive’ => ‘true’, /* definisci se abilitare la generazione di un archivio (tipo archive-cd.php) */
‘capability_type’ => ‘post’, /* definisci se si comporterà come un post o come una pagina */
‘hierarchical’ => false, /* definisci se potranno essere definiti elementi padri di altri */
/* la riga successiva definisce quali elementi verranno visualizzati nella schermata di creazione del post */
‘supports’ => array( ‘title’, ‘editor’, ‘author’, ‘thumbnail’, ‘excerpt’, ‘trackbacks’, ‘custom-fields’, ‘comments’, ‘revisions’, ‘sticky’)
) /* fine delle opzioni */
); /* fine della registrazione */}

// Inizializzo la funzione
add_action( ‘init’, ‘cd_custom_post’);

Bene, il primo passa è stato fatto ora ci tocca mostrare i contenuti del CPT nel front-end. Ecco il risultato.

Come creare un Custom Post Type
Come creare un Custom Post Type lato back-end

Come mostrare i post di un custom post type di WordPress

per mostrare il CPT appena creato nel front-end del nostro sito ci basta seguire i seguenti passaggi. All’interno del nostro template (puoi farlo, anzi ti consiglio di farlo nel tema child spero che tu l’abbia creato!) crea un nuovo file che puoi chiamare come vuoi nel caso specifico lo chiameremo cd.php (il nome del file deve essere quello del custom post type) e ci incolliamo il codice sottostante.

Per creare il nuovo file all’interno del tuo template devi effettuare l’accesso ftp al tupo hosting in modo da poter gestire le cartelle, quindi entrerai nella cartella wp-content/theme/tuo tema child/cd.php

<?php
/*
Template Name:  CD
*/
?>
<?php get_header(); ?>
<?php
// Loop CD
$custom_query_args = array(
‘post_type’ => ‘cd’,
‘posts_per_page’ => 1,
‘orderby’ => ‘menu_order’,
‘order’ => ‘ASC’,
);
$custom_query = new WP_Query( $custom_query_args );
?>
<?php if ( $custom_query->have_posts() ) : while ( $custom_query->have_posts() ) : $custom_query->the_post(); ?>
<article id=”post-<?php the_ID(); ?>” <?php post_class(); ?>>
<h2><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></h2>
<?php the_post_thumbnail(); ?>
<?php the_excerpt();?>
</article>
<?php endwhile; endif; wp_reset_postdata(); ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

 

Come creare un Custom Post Type
Come creare un Custom Post Type: lato front-end
Salva il contenuto e il gioco è fatto. Ora creiamo una nuova pagina di WordPress ed assegniamo il template appena creato e come ultimo passaggio  creiamo una voce di menu che richiama la pagina Libreria CD ed a front end vedremo il contenuto dei CPT.
Se hai seguito la guida hai creato il  tuo primo Custom Post Type!

Autore Bartolomeo

Mi chiamo Bartolomeo Alberico, sono un consulente tecnico con la passione per il web e la tecnologia e tutto quello che le ronza intorno.
Nel tempo libero scrivo articoli per il mio blog su argomenti vari, in particolare su WordPress e SEO.

Condividi questo articolo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Ho letto la policy privacy e accetto il trattamento dei miei dati personali in conformità al D.Lgs. 196/2003