J'utilise WP_User_Query
pour ramener une liste d'utilisateurs. Je passe une liste d'utilisateurs spécifiques à inclure dans les résultats. Par exemple:
$user_ids = array( 1, 5, 9, 61, 24, 12 );
$args = array(
'include' => $user_ids,
'count_total' => true,
'search' => sanitize_text_field( $_GET['phrase'] )
);
$query = new WP_User_Query( $args );
Les résultats sont actuellement classés par user_login
. Comment modifier ma requête afin que les résultats renvoyés soient ordonnés par mon tableau $user_id
? Par exemple, si 3 utilisateurs doivent être renvoyés (par exemple les ID 5, 61 et 12), l'utilisateur 5 doit être affiché en premier, l'utilisateur 61 en second et l'utilisateur 12 en troisième.
Réf: http://codex.wordpress.org/Class_Reference/WP_User_Query
Je pense qu'au lieu de traiter avec des requêtes SQL complexes et des moyens de les faire utiliser par WordPress, une simple uasort
peut faire l'affaire:
$uids = array( 1 );
$user_query = new WP_User_Query( array( 'include' => $uids ) );
$users = (array) $user_query->results;
usort( $users, function( $a, $b ) use( $uids ) {
return array_search( $a->ID, $uids) < array_search( $b->ID, $uids ) ? -1 : 1;
} );
// use as usual
foreach ( $users as $user ) {
echo '<p>' . $user->display_name . '</p>';
}
Je sais qu'il est tard, mais si quelqu'un est intéressé, essayez: $ args ['orderby'] = 'include';
Travaillé pour moi ..