Cum pot obține articole după mai multe ID-uri?
Am un șir de ID-uri de articole: 43,23,65
.
Speram să pot folosi get_posts()
și să utilizez șirul de ID-uri ca argument.
Dar nu pot găsi nicio funcție pentru a prelua mai multe articole după ID.
Chiar trebuie să folosesc WP_Query
?
Am văzut pe cineva menționând folosirea tag_in
- dar nu pot găsi nicio documentație despre aceasta.

Poți folosi get_posts()
deoarece acceptă aceleași argumente ca și WP_Query
.
Pentru a-i transmite ID-urile, folosește 'post__in' => array(43,23,65)
(acceptă doar array-uri).
Ceva de genul:
$args = array(
'post__in' => array(43,23,65)
);
$posts = get_posts($args);
foreach ($posts as $p) :
//post!
endforeach;
Aș recomanda să setezi și post_type
și posts_per_page
pentru a fi sigur.

Nu? Îl transmiți ca array? Folosești două underscore-uri (post__in vs post_in)? Transmiți un post_type?

Dacă obții un custom post type, folosește argumentul post_type
, iar dacă vrei mai mult de 5 rezultate, adaugă opțiunea 'nopaging' => true
.
Dacă ai un string separat prin virgule în loc de array, folosește explode(',',$input);
pentru a converti în array.

Dacă dorești să păstrezi ordinea postărilor așa cum sunt transmise prin array
, asigură-te că adaugi 'order_by' => 'post__in'
în $args
.

ai grijă când folosești parametrul post_type
. În cazul post
, funcția va returna TOT conținutul, inclusiv tipurile personalizate, nu doar post
.

Dacă dorești să obții toate articolele după ID-urile lor (indiferent de tipul de articol) folosește:
$args = [
'post_type' => get_post_types(),
'post__in' => [ 43, 23, 65 ]
];
$posts = get_posts($args);
Sau chiar mai scurt:
$args = [
'post_type' => 'any',
'post__in' => [ 43, 23, 65 ]
];
$posts = get_posts($args);
