And After - Design e Tecnologia por Sua Conta!
O desenvolvedor é um blog sobre desenvolvimento web, não tratando apenas de programação mas também compartilhando experiências, métodos, debates e tendências da internet.

O Desenvolvedor é um blog de www.andafter.org
Assinar o Feed RSS

Chris Benseler

[www]

Fotos sempre tiradas do lado direito do rosto. Que nem o Rei!
Viciado em web, trabalho com web. Javascript e (x)html são minha praia conhecida, e me arrisco com PHP e Java.
Na vida offline, futebol e música me distraem. E falar bobeiras com os amigos

Status
Karma: 16024
Opiniões: 30

Mais deste autor


Wordpress - listar usuários com um determinado perfil

Wordpress - listar usuários com um determinado perfil

Muito bomEste texto foi classificado como Muito bom
Em Internet, Programação
Por Chris Benseler
22 de Junho de 2009

Veja como listar, no Wordpress, todos os usuários de um certo perfil (autor, editor, etc...)

RSS Acompanhe O Desenvolvedor por Feeds!


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.

O que você achou do texto?

  • Muito ruim
  • Ruim
  • Regular
  • Bom
  • Muito bom
Sua opinião é o que faz a comunidade funcionar, colabore para isso!

Tags: wordpress, php

Enviar para um amigo
Você pode comentar, assinar o feed, conhecer mais sobre o autor e ajudar a divulgar este artigo em sua ferramenta favorita através dos botões abaixo.
  • Rec6
  • ueba
  • linkk
  • dihitt
  • linkloko
  • websapiens
  • linkto
  • Eu curti

Comentários

Augusto

1/5/2010 17:05:00

Como eu faria para mostrar dentro de uma página do wordpress essa lista com os usuários linkando para a página de perfil de cada um, ou seja, mostrar os usuários do site.

A segunda opção seria melhor. Gostaria que quando um usuário comentasse um post, o link que aparece junto ao nome levaria para uma visualização da página dele.

Alguma idéia?
EU não sei como fazer. Achei melhor perguntar para "o desenvolvedor" então rs.

[Responder este comentário]

Chris Benseler

3/5/2010 11:47:00

Augusto, onde tem a linha
//faz o que for necessário com o objeto $user
é onde você pode trabalhar com seu usuário.
Veja em http://codex.wordpress.org/Function_Reference, na retranca User and Author Functions, o que você pode fazer usando funções nativas do WP.
Abs, Chris

[Responder este comentário]
Deixe seu comentário!

Nome (requerido)

E-mail (requerido - não será divulgado)

URL

Quanto é 2 + 1?




web tracker