Come posso ottenere post da più ID post?


21

Ho una stringa con il post ID di: 43,23,65.
Speravo di poter usare get_posts()e usare la stringa con ID come argomento.

Ma non riesco a trovare alcuna funzione per recuperare più post per ID.

Devo davvero fare un WP_query?

Ho anche visto qualcuno menzionarlo usando tag_in- ma non riesco a trovare alcuna documentazione su questo.


hai provato a usare l'argomento 'include' di get_posts() codex.wordpress.org/Template_Tags/get_posts ?
Michael,

Risposte:


37

È possibile utilizzare get_posts()in quanto accetta gli stessi argomenti di WP_Query.

Per passare gli ID, utilizzare 'post__in' => array(43,23,65)(accetta solo array).

Qualcosa di simile a:

$args = array(
    'post__in' => array(43,23,65)
);

$posts = get_posts($args);

foreach ($posts as $p) :
    //post!
endforeach;

Avrei anche impostato il post_typee posts_per_pagesolo per una buona misura.


Questo non funziona
Dissident Rage,

No? Lo stai passando come un array? Usando due trattini bassi (post__in vs post_in)? Passa un post_type?
CookiesPerDevo

1
Se stai ricevendo un tipo di post personalizzato, utilizza l' post_typeargomento e se desideri più di 5 risultati, aggiungi l' 'nopaging' => trueopzione. Se si dispone di una stringa separata da virgola anziché di un array, utilizzare explode(',',$input);per convertire in array.
ejazz,

1
Se desideri mantenere l'ordine dei post nel modo in cui sono passati array, assicurati di aggiungere 'order_by' => 'post__in'al tuo $args.
rob_st,

fare attenzione usando il post_typeparametro. In tal caso post, la funzione restituirà TUTTI i tipi di contenuto, compresi quelli personalizzati, non solo post.
Fusion

3

Se non riesci a far funzionare quanto sopra, assicurati di aggiungere post_type:

$args = array(
    'post_type' => 'pt_case_study',
    'post__in' => array(2417, 2112, 784)
);

$posts = get_posts($args);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.