Estou tentando fazer uma tabela de usuários por tipo de função. Qual é o método de práticas recomendadas para obter o ID do usuário? Meu objetivo é imprimir cada usuário primeiro & sobrenomes, nome de usuário e e-mail.

O que eu tenho agora:

$get_admins = array( "blog_id" => $GLOBALS["blog_id"], "role" => "administrator", ); $blogusers = get_users($get_admins); foreach ($blogusers as $user) { $userid = get_userdata($bloguser->user_id); $user_info = get_userdata($userid); echo "<tr>"; echo "<td>". $user_info->user_firstname ."</td>"; echo "<td>". $user_info->last_name ."</td>"; echo "<td>". $user->user_login ."</td>"; echo "<td>". $user->user_email ."</td>"; echo "</tr>"; } 

observação: No meu exemplo acima, obter o ID do usuário não funciona.

Referência do Codex: get_users ()

Resposta

Seu código não funciona porque você está usando $bloguser em vez de $user.

E não faz sentido chamar get_userdata (), pois get_users () já retorna objetos de usuário:

foreach ($blogusers as $user) { echo "<tr>"; echo "<td>". $user->first_name ."</td>"; echo "<td>". $user->last_name ."</td>"; echo "<td>". $user->user_login ."</td>"; echo "<td>". $user->user_email ."</td>"; echo "</tr>"; } 

Comentários

  • Eliminar o código redundante funciona para coisas armazenadas na tabela wp_users. No entanto, o nome / sobrenome é meta e armazenado em wp_usermeta. [Eu ' tenho certeza de que você já sabe disso :)] Então, usar $user->user_firstname isn ' t colocando para fora nada. O que não estou entendendo? Obrigado @Scribu
  • get_users executa uma junção à meta tabela, e os parâmetros de campos são padronizados para all para que os metadados devem retornar na consulta (a menos que um determinado valor não esteja ' t definido para o (s) usuário (s) fornecido (s)). Verifique se os usuários que você ' não está vendo um nome, definitivamente têm um conjunto.

Resposta

Seu código não funciona porque em foreach loop get_userdata($bloguser->user_id); linha, $bloguser é uma variável de objeto desconhecida. Tente este código:

$get_admins = array( "role" => "admin", "orderby" => "user_nicename", "order" => "ASC" ); $blogusers = get_users( $get_admins ); echo "<ul>"; foreach ( $blogusers as $user ) { echo "<li>" . $user->first_name . "</li>"; echo "<li>" . $user->last_name . "</li>"; echo "<li>" . $user->user_login . "</li>"; echo "<li>" . $user->user_email . "</li>"; } echo "</ul>"; 

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *