¿Cómo obtengo entradas por múltiples IDs de entrada?

31 dic 2011, 13:44:59
Vistas: 88.1K
Votos: 31

Tengo una cadena con IDs de entradas: 43,23,65.
Esperaba poder usar get_posts() y utilizar la cadena con IDs como argumento.

Pero no puedo encontrar ninguna función para recuperar múltiples entradas por ID.

¿Realmente tengo que usar WP_Query?

También he visto que alguien mencionó usar tag_in - pero no puedo encontrar documentación sobre esto.

1
Comentarios

¿has intentado usar el argumento 'include' de get_posts() http://codex.wordpress.org/Template_Tags/get_posts ?

Michael Michael
31 dic 2011 13:56:39
Todas las respuestas a la pregunta 3
6
56

Puedes utilizar get_posts() ya que acepta los mismos argumentos que WP_Query.

Para pasarle los IDs, usa 'post__in' => array(43,23,65) (solo acepta arrays).

Algo como:

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

$posts = get_posts($args);

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

También recomendaría establecer post_type y posts_per_page por precaución.

31 dic 2011 13:56:08
Comentarios

Esto no funciona.

Dissident Rage Dissident Rage
5 ago 2015 22:22:02

¿No? ¿Lo estás pasando como un array? ¿Usando dos guiones bajos (post__in vs post_in)? ¿Pasando un post_type?

CookiesForDevo CookiesForDevo
6 ago 2015 04:10:39

Si estás obteniendo un custom post type, usa el argumento post_type, y si quieres más de 5 resultados, añade la opción 'nopaging' => true.

Si tienes un string separado por comas en lugar de un array, usa explode(',',$input); para convertirlo a array.

ejazz ejazz
19 ene 2017 15:48:37

Si deseas mantener el orden de las publicaciones tal como se pasan en el array, asegúrate de agregar 'order_by' => 'post__in' a tus $args.

rob_st rob_st
12 oct 2017 13:17:08

Ten cuidado al usar el parámetro post_type. En el caso de post, la función devolverá TODOS los tipos de contenido, incluyendo tus tipos personalizados, no solo post.

Fusion Fusion
23 abr 2019 14:49:30

Solo asegúrate de verificar el estado de los IDs de las publicaciones. Debería ser 'publish' (publicado).

Sarasranglt Sarasranglt
27 mar 2020 10:49:32
Mostrar los 1 comentarios restantes
0

Si no puedes hacer que lo anterior funcione, asegúrate de agregar post_type:

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

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

Si quieres obtener todas las publicaciones por sus IDs (sin importar el tipo de publicación) usa esto:

$args = [
    'post_type' => get_post_types(),
    'post__in' => [ 43, 23, 65 ]
];

$posts = get_posts($args);

O incluso más corto:

$args = [
    'post_type' => 'any',
    'post__in' => [ 43, 23, 65 ]
];

$posts = get_posts($args);
8 may 2021 18:33:41