Cum pot obține articole după mai multe ID-uri?

31 dec. 2011, 13:44:59
Vizualizări: 88.1K
Voturi: 31

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.

1
Comentarii

ai încercat să folosești argumentul 'include' al funcției get_posts() http://codex.wordpress.org/Template_Tags/get_posts ?

Michael Michael
31 dec. 2011 13:56:39
Toate răspunsurile la întrebare 3
6
56

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.

31 dec. 2011 13:56:08
Comentarii

Nu funcționează.

Dissident Rage Dissident Rage
5 aug. 2015 22:22:02

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

CookiesForDevo CookiesForDevo
6 aug. 2015 04:10:39

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.

ejazz ejazz
19 ian. 2017 15:48:37

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.

rob_st rob_st
12 oct. 2017 13:17:08

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.

Fusion Fusion
23 apr. 2019 14:49:30

Doar asigură-te că verifici starea ID-urilor postărilor. Ar trebui să fie 'publish'

Sarasranglt Sarasranglt
27 mar. 2020 10:49:32
Arată celelalte 1 comentarii
0

Dacă nu reușești să faci funcțional codul de mai sus, asigură-te că ai adăugat post_type:

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

$posts = get_posts($args);
21 aug. 2015 18:10:34
0

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);
8 mai 2021 18:33:41