Come ottenere post attraverso ID multipli?
Ho una stringa con degli ID di post: 43,23,65
.
Speravo di poter utilizzare get_posts()
e usare la stringa con gli ID come argomento.
Ma non riesco a trovare nessuna funzione per recuperare più post tramite ID.
Devo per forza utilizzare una WP_Query
?
Ho anche visto qualcuno menzionare l'uso di tag_in
- ma non riesco a trovare documentazione a riguardo.

Puoi utilizzare get_posts()
poiché accetta gli stessi argomenti di WP_Query
.
Per passargli gli ID, usa 'post__in' => array(43,23,65)
(accetta solo array).
Qualcosa come:
$args = array(
'post__in' => array(43,23,65)
);
$posts = get_posts($args);
foreach ($posts as $p) :
//post!
endforeach;
Consiglio anche di impostare post_type
e posts_per_page
per maggiore completezza.

No? Lo stai passando come array? Stai usando i due underscore (post__in invece di post_in)? Stai passando un post_type?

Se stai ottenendo un custom post type, usa l'argomento post_type
, e se vuoi più di 5 risultati, aggiungi l'opzione 'nopaging' => true
.
Se hai una stringa separata da virgole invece di un array, usa explode(',',$input);
per convertirlo in array.

Se vuoi mantenere l'ordine dei post così come sono passati dall'array
, assicurati di aggiungere 'order_by' => 'post__in'
ai tuoi $args
.

fai attenzione quando usi il parametro post_type
. Nel caso di post
, la funzione restituirà TUTTI i tipi di contenuto, inclusi quelli personalizzati, non solo i post
.

Se vuoi ottenere tutti i post tramite i loro ID (indipendentemente dal tipo di post) usa questo:
$args = [
'post_type' => get_post_types(),
'post__in' => [ 43, 23, 65 ]
];
$posts = get_posts($args);
O ancora più breve:
$args = [
'post_type' => 'any',
'post__in' => [ 43, 23, 65 ]
];
$posts = get_posts($args);
