Afișează tipul curent de postare personalizată

31 ian. 2011, 00:18:10
Vizualizări: 50.1K
Voturi: 4

Am toate tipurile mele de postări personalizate listate împreună în format blog. Ceea ce încerc să fac este să afișez numele tipului de postare pentru fiecare articol.

Am încercat asta:

get_post_type_object('post');
echo $obj->labels->singular_name;

Dar afișează doar "Post" pentru tot în loc să afișeze numele tipului de postare personalizată

0
Toate răspunsurile la întrebare 3
0
20

Dacă vă aflați în cadrul The Loop, încercați:

// Obține tipul postului pentru ID-ul curent
$post_type = get_post_type( $post->ID );
// Afișează tipul postului
echo $post_type;

Funcționează pentru dumneavoastră?

31 ian. 2011 00:44:44
1

În interiorul buclei, deja aveți la dispoziție un obiect $post, nu este nevoie să apelați get_post_type sau alte funcții, această soluție ar trebui să funcționeze.

<?php echo $post->post_type; ?>

Sau, dacă preferați să utilizați get_post_type, puteți simplifica sarcina funcției transmitându-i obiectul post pe care îl aveți deja (astfel încât nu va mai fi nevoie să preia postul, ci doar să extragă o proprietate din el).

<?php echo get_post_type( $post ); ?>

Altfel, get_post_type va apela inutil get_post pentru a prelua obiectul post (un obiect pe care îl aveți deja la dispoziție).

Sper că vă ajută..

1 feb. 2011 14:04:54
Comentarii

Odată ce un articol este preluat din baza de date prin apelarea funcției get_post(), un apel repetat nu reprezintă o problemă serioasă. Totul este stocat în cache intern pe durata afișării paginii, singura suprasarcină fiind un apel rapid al funcției pentru a prelua obiectul din cache. În acest caz, get_post_type() nu face practic nimic în plus față de returnarea valorii $post->post_type, așa că optimizarea ta are sens, dar ar trebui probabil să includă un filtru sau ceva similar, caz în care utilizarea get_post_type() ar fi abordarea recomandată conform API-ului.

jerclarke jerclarke
21 sept. 2012 22:20:25
1

Citind documentația de la http://codex.wordpress.org/Function_Reference/get_post_type_object trebuie să transmiți tipul de postare personalizat ca argument!

Încearcă cu:

$obj=get_post_type_object('your-post-type');
echo $obj->labels->singular_name;
31 ian. 2011 00:49:40
Comentarii

lipsește setarea variabilei $obj =

Leo Caseiro Leo Caseiro
21 iun. 2016 16:14:00