Mostra il custom post type corrente

31 gen 2011, 00:18:10
Visualizzazioni: 50.1K
Voti: 4

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

0
Tutte le risposte alla domanda 3
0
20

Se ti trovi all'interno di The Loop, prova:

$post_type = get_post_type( $post->ID );
echo $post_type;

Funziona nel tuo caso?

31 gen 2011 00:44:44
1

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..

1 feb 2011 14:04:54
Commenti

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.

jerclarke jerclarke
21 set 2012 22:20:25
1

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;
31 gen 2011 00:49:40
Commenti

manca l'impostazione della variabile $obj =

Leo Caseiro Leo Caseiro
21 giu 2016 16:14:00