Mostra il custom post type corrente
Ho una lista di tutti i miei custom post type insieme in formato blog. Quello che sto cercando di fare è mostrare il nome del post type per ciascun post.
Ho provato questo:
get_post_type_object('post');
echo $obj->labels->singular_name;
Ma ha mostrato solo "Post" per tutto invece del nome del custom post type

All'interno del loop hai già a disposizione un oggetto $post
, non è necessario chiamare get_post_type
o altre funzioni, questo dovrebbe funzionare:
<?php echo $post->post_type; ?>
Oppure, se preferisci usare get_post_type
puoi semplificare il compito alla funzione passandole direttamente l'oggetto post che già hai (così non dovrà recuperare nuovamente il post, ma estrarre semplicemente una proprietà da esso).
<?php echo get_post_type( $post ); ?>
Altrimenti, get_post_type
dovrebbe inutilmente chiamare get_post
per recuperare l'oggetto post (un oggetto che hai già disponibile).
Spero sia utile..

Una volta che un post viene recuperato dal database chiamare nuovamente get_post() non è un problema serio. Tutto è memorizzato nella cache internamente per la durata della visualizzazione della pagina, l'unico sovraccarico è una chiamata di funzione rapida per recuperare l'oggetto dalla cache. In questo caso get_post_type() in pratica non fa altro che restituire $post->post_type, quindi la tua ottimizzazione ha effettivamente senso, ma probabilmente dovrebbe avere un filtro o qualcosa di simile, nel qual caso usare get_post_type() sarebbe il modo API corretto da seguire.

Leggendo la documentazione su http://codex.wordpress.org/Function_Reference/get_post_type_object devi passare come argomento il custom post type!
Prova con:
$obj=get_post_type_object('your-post-type');
echo $obj->labels->singular_name;
