Come ottenere e visualizzare dati sui custom post types (esempi utili)

Custom Post Types

In questo articolo, ho voluto raggruppare alcuni esempi utili per ottenere di diversi tipi di dati dai custom post types di WordPress e come fare per visualizzarli in un template custom.

Supponiamo di avere un custom post type denomitato “Events” e il suo slug di conseguenza sarร  “events“, ovviamente potete e dovrete sostituirlo con il nome corretto del vostro custom post type. In questo articolo useremo questo caso per tutti gli esempi che andremo a fare.


Ottieni e visualizza i custom post types in WordPress

Per ottenere i post come risultato da un custom post type utilizziamo la classe WP_Query alla quale vanno passati una serie di argomenti e la andiamo ad utilizzare all’interno del ciclo (loop) WordPress per ottenere i risultati desiderati.

Questo primo snippet di codice รจ un esempio di come utilizzare il ciclo standard di WordPress per ottenere i dati dal tipo di post personalizzato, si puรฒ utilizzare o modificare nel proprio template per avere i risultati desiderati.

<?php
 
$args = array(
    'post_type' => 'events',
    'posts_per_page' => 5,
    );
 
$query = new WP_Query($args);
 
if($query->have_posts()):
    while($query->have_posts()):
        $query->the_post();
     
    // Add example code here to get desired results.
     
    endwhile;
 
/* Restore original Post Data */
wp_reset_postdata();    
 
endif;
 
?>

Vediamo come funziona. Con l’array $args passiamo gli argomenti che ci interessano, in questo esempio sono soltanto due: il custom post type ‘events‘ e il parametro ‘post_per_page’ che ci da indicazione su quanti post debbono essere visualizzati nella pagina del template.

Poi iniziamo il loop con il ciclo while e all’interno di esso possiamo andare a scrivere il codice che visualizzerร  il nostro custom post type e alla fine normalmente si resetta la query con la funzione standard wp_reset_postdata().

Vediamo di seguito cosa potremmo visualizzare del nostro custom post type e come potremmo farlo.

ID del custom post type

Per ottenere e visualizzare l’ID del tipo di post personalizzato WordPress mette a disposizione la funzione get_the_ID() che ha come scopo di restituirci l’ID del custom post type corrente all’interno del ciclo di WordPress.

echo get_the_ID();

Titolo del custom post type

Se invece volessi visualizzare il titolo del custom post type posso utilizzare un’altra funzione: get_the_title(), la quale ci restituirร  subito il titolo del custom post type corrente nel ciclo di WordPress.

echo get_the_title();

Custom post type permalink | URL

Per ottenere il permalink o l’URL che ci puรฒ servire per collegarci direttamente al contenuto del custom post type, รจ possibile utilizzare la funzione get_the_permalink() . sempre all’interno del ciclo di WordPress.

echo get_the_permalink();

Estratto (excerpt) del custom post type

Per ottenere l’estratto del custom post type, la funzione da utilizzare รจ get_the_excerpt() .

echo get_the_excerpt();

Contenuto del custom post type

Get_the_content(); รจ la funzione che WordPress mette a disposizione per ottenere il contenuto del custom post type.

echo get_the_content();

Come visualizzare l’immagine in evidenza del custom post type

L’immagine in primo piano del custom post type corrente nel ciclo di WordPress si puรฒ ottenere tramite la funzione get_the_post_thumbnail_url(), che restituisce l’url dell’immagine che รจ stata salvata nei media di WordPress.

echo '<img src="'. get_the_post_thumbnail_url().'"/>';

Come rilevare il nome del custom post type

A volte ci puรฒ servire di visualizzare il nome del custom post type e questo possiamo farlo utilizzando la funzione get_post_type().

echo get_post_type();

Come trovare i nomi delle etichette (labels) del custom post type

Se conosciamo il nome oppure lo abbiamo rilevato tramite la funzione get_post_type() possiamo trovare di conseguenza anche il nome delle sue etichette (labels) che in pratica rappresentano come viene visualizzato il custom post type nel pannello di amministrazione di WordPress e per questa operazione accediamo all’object custom post type tramite la funzione get_post_type_object().

// Get post type object
$post_type_obj = get_post_type_object( get_post_type() );
 
// Displays singular label name of custom post type: Event
echo $post_type_obj->labels->singular_name; 
 
// Displays plural label name of custom post type: Events
echo $post_type_obj->labels->name; 

Custom Post Type Slug

Sempre attraverso l’oggetto rilevato con la funzione get_post_type_object() possiamo rilevare lo “slug” del custom post type, cioรจ la porzione di URL che puรฒ servirci rispetto al custom post type stesso, a tale scopo usiamo rewrite[‘slug’] come parametro dell’object da rilevare.

// Get post type object
$post_type_obj = get_post_type_object( get_post_type() );
 
// Displays custom post type slug
echo $post_type_obj->rewrite['slug']; 

Ottieni e visualizza l’elenco di tutti i post di un custom post type

Un altro pratico snippet di codice che puรฒ servire รจ quello per visualizzare un elenco di tutti i post relativi ad un custom post type (per esempio in questo caso caso vogliamo visualizzare tutti gli eventi). Utilizziamo sempre WP_Query con una matrice di argomenti e un ciclo di WordPress e per ottenere tutti i post bisogna impostare posts_per_page su -1 visualizzando poi all’interno del ciclo un semplice elenco html.

<?php
 
$args = array(
    'post_type' => 'events',
    'posts_per_page' => -1,
    );
 
$query = new WP_Query($args);
 
if($query->have_posts()):
    while($query->have_posts()):
        $query->the_post();
     
    echo '<ul>';    
 
    echo '<li><a href="'.get_the_permalink().'">'.get_the_title().'</a></li>';
 
    echo '</ul>';
     
    endwhile;
 
/* Restore original Post Data */
wp_reset_postdata();    
 
endif;