¿Cómo hacer que WP_Query 'post__in' acepte un array?
6 feb 2012, 21:23:32
Vistas: 47.6K
Votos: 8
Tengo una función que devuelve una lista de IDs de posts separados por comas a los que un usuario particular puede acceder. Quiero usar esta lista en un bucle WP_Query.
La función personalizada:
$array = user_albums();
foreach( $array as $post ) {
if( !in_array( $post->ID, $array ) )
$ids[] = $post->ID;
}
$access_ids = implode( ', ', $ids );
Aquí está la situación:
- En mi sitio de prueba la lista de IDs es
158, 162, 145, 269
. - Insertar la lista de IDs solo devuelve el primer post.
'post__in'=> array( $access_ids ),
- Insertar la lista de IDs sin un array devuelve un error.
'post__in'=> $access_ids ,
- Insertar los IDs de posts manualmente devuelve los posts correctos
'post__in'=> array( 158, 162, 145, 269 ),
¿Qué podría estar haciendo mal?
Agradezco cualquier ayuda.

MTT
3.59K
Comentarios
Todas las respuestas a la pregunta
3
0
Ese implode()
probablemente es lo que está rompiendo las cosas:
$access_ids = '158, 162, 145, 269';
$array = array($access_ids); //incorrecto
var_dump( $array );
// array
// 0 => string '158, 162, 145, 269' (length=18)
$array = array_map( 'trim', explode( ',', $access_ids ) ); // correcto
var_dump( $array );
//array
// 0 => string '158' (length=3)
// 1 => string '162' (length=3)
// 2 => string '145' (length=3)
// 3 => string '269' (length=3)

Rarst
100K
6 feb 2012 21:38:07
Preguntas relacionadas
7
respuestas
1
respuestas
2
respuestas
4
respuestas