WordPress – listar usuários com um determinado perfil

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.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *