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;