Cum să faci WP_Query 'post__in' să accepte un array?
6 feb. 2012, 21:23:32
Vizualizări: 47.6K
Voturi: 8
Am o funcție care returnează o listă de ID-uri de postări separate prin virgulă, la care un anumit utilizator poate avea acces. Vreau să folosesc această listă într-o buclă WP_Query.
Funcția personalizată:
$array = user_albums();
foreach( $array as $post ) {
if( !in_array( $post->ID, $array ) )
$ids[] = $post->ID;
}
$access_ids = implode( ', ', $ids );
Deci iată situația:
- Pe site-ul meu de test, lista de ID-uri este
158, 162, 145, 269
. - Inserarea listei de ID-uri returnează doar prima postare.
'post__in'=> array( $access_ids ),
- Inserarea listei de ID-uri care nu se află într-un array returnează o eroare.
'post__in'=> $access_ids ,
- Inserarea manuală a ID-urilor de postări returnează postările corecte
'post__in'=> array( 158, 162, 145, 269 ),
Ce aș putea face greșit?
Apreciez orice ajutor.

MTT
3.59K
Comentarii
Toate răspunsurile la întrebare
3
0
Probabil că implode()
este ceea ce strică lucrurile:
$access_ids = '158, 162, 145, 269';
$array = array($access_ids); //incorect
var_dump( $array );
// array
// 0 => string '158, 162, 145, 269' (length=18)
$array = array_map( 'trim', explode( ',', $access_ids ) ); // corect
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
Întrebări similare
7
răspunsuri
1
răspunsuri
2
răspunsuri
4
răspunsuri