Obține prima postare din wp_query

3 apr. 2014, 22:44:00
Vizualizări: 42.3K
Voturi: 8

Cum pot obține prima postare dintr-un rezultat WP_Query?

$connected = new WP_Query( array(
// Argumentele
));

// Acest cod nu funcționează..
echo $connected[0]->post_name;
6
Comentarii

Trebuie să folosești o buclă. Citește intrarea din codex despre WP_Query... acolo este un exemplu de buclă. În plus, pe aceeași pagină poți găsi parametrul posts_per_page și să limitezi interogarea pentru a prelua doar 1 articol.

helgatheviking helgatheviking
3 apr. 2014 22:54:45

@helgatheviking Da, știu că este posibil în acest fel, dar nu este posibil fără buclă?

Robbert Robbert
3 apr. 2014 22:56:19

Poți folosi get_post() Codex sau să utilizezi The Loop așa cum sugerează comentariul de mai sus, iar dacă tot ai nevoie de primul articol, poți întotdeauna să resetezi interogarea - $connected->rewind_posts()

Howdy_McGee Howdy_McGee
3 apr. 2014 23:05:02

Încearcă $connected->posts[0]->post_name - $connected este un obiect WP_Query care conține un membru array de posts.

User User
3 apr. 2014 23:08:02

Totul este posibil, dar de ce să reinventezi roata? Folosește var_dump($connected) pentru a vedea de ce soluția propusă de tine nu funcționează. $connected este de fapt un obiect în care rezultatele postărilor se află în proprietatea $connected->posts.

helgatheviking helgatheviking
3 apr. 2014 23:10:09

Vă mulțumesc tuturor pentru ajutor. $connected->posts[0]->post_name a funcționat!

Robbert Robbert
4 apr. 2014 09:51:05
Arată celelalte 1 comentarii
Toate răspunsurile la întrebare 2
0
20

Dacă analizezi WP_Query, setul de postări interogate este salvat în proprietatea posts, iar postarea curentă este atribuită proprietății post (de fiecare dată când bucla se repetă).

Deci ai putea face $connected->posts[0] dacă ai nevoie doar să obții acea postare, dar ar putea fi mai convenabil să faci $connected->the_post(); apoi $connected->post dacă trebuie să sari peste prima și să procesezi restul într-o buclă normală.

3 apr. 2014 23:30:20
0

Poți folosi un cod ca acesta:

if ($the_query->have_posts()) {
  $first_post = $the_query->posts[0];
  echo "Titlul primului post\t:"$first_post->post_title;
}
25 feb. 2021 10:29:59