Wordpress - listar usuários com um determinado perfil
Por Chris Benseler em Internet, Programação,
Veja como listar, no Wordpress, todos os usuários de um certo perfil (autor, editor, etc...)
Tenho quase certeza que essa não é a melhor forma (sem usar algum plugin) para listar todos os usuários cadastrados no seu blog/site com o Wordpress de um determinado perfil, mas no caso em que a performance não é gargalo, não vi problemas:
- faça um select na tabela de usuários, retornando todos os ids
- percorra a lista de ids, retornando cada usuário relativo a esse id
- faz um if para checar o user_level. É ele que define o perfil do usuário
O código seria:
<?php
$aUsersID = $wpdb->get_col( $wpdb->prepare("SELECT $wpdb->users.ID FROM $wpdb->users ORDER BY %s ASC", ""));
foreach ( $aUsersID as $iUserID ) :
$user = get_userdata( $iUserID );
if($user->user_level==2) { //2 é o user_level para contribuidor
//faz o que for necessário com o objeto $user
}
endforeach;
?>
Pelo que pude ver da estrutura da base do Wordpress, que eu ainda estou conhecendo, há uma tabela wp_users que tem os usuários e uma outra, wp_usermeta, de metadados. Não entendi porque user_level não faz parte da wp_users pois está ligado diretamente ao usuário (será que nas primeiras versões não existia esse campo e depois criaram como um metadado?), mas certamente um inner join poderia resolver mais elegantemente essa questão.