Visualizzare custom post type con shortcode
Ho creato un custom post type per il mio tema WordPress e una pagina dove vengono visualizzati i custom post type. Ma qualcuno sa come creare uno shortcode che visualizzi i post di un custom post type?

Penso che, fondamentalmente, la tua domanda sia come interrogare i post di un custom post type in uno shortcode. Dovresti dare un'occhiata alla sezione WP_Query di WordPress: https://codex.wordpress.org/Class_Reference/WP_Query
Nel mio codice di esempio creo uno shortcode che mostra il titolo degli ultimi post pubblicati del tipo 'my-custom-post-type':
<?php
add_shortcode( 'shortcodename', 'display_custom_post_type' );
function display_custom_post_type(){
$args = array(
'post_type' => 'my-custom-post-type',
'post_status' => 'publish'
);
$string = '';
$query = new WP_Query( $args );
if( $query->have_posts() ){
$string .= '<ul>';
while( $query->have_posts() ){
$query->the_post();
$string .= '<li>' . get_the_title() . '</li>';
}
$string .= '</ul>';
}
wp_reset_postdata();
return $string;
}
?>
Poiché uno shortcode viene eseguito nel loop, dovresti usare wp_reset_postdata()
dopo aver completato la tua query, così il Main Loop funzionerà di nuovo come previsto. Puoi trovare maggiori informazioni su questa funzione qui: https://codex.wordpress.org/Function_Reference/wp_reset_postdata
Spero che questo ti dia un buon punto di partenza.

dovresti usare wp_reset_postdata
dopo un loop secondario. wp_reset_query
è necessario solo per ripristinare il globale $wp_query
, che in questo caso non è stato sovrascritto. wp_reset_query
chiama internamente anche wp_reset_postdata
, motivo per cui funziona qui, ma è superfluo.
