Jessaie de créer un tableau des utilisateurs par type de rôle. Quelle est la meilleure méthode pour obtenir lID utilisateur? Mon objectif est dimprimer chaque utilisateur en premier & nom, nom dutilisateur et e-mail.

Ce que jai maintenant:

$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>"; } 

note: Dans mon exemple ci-dessus, lobtention de lID utilisateur ne fonctionne pas.

Référence Codex: get_users ()

Réponse

Votre code ne fonctionne pas car vous « utilisez $bloguser au lieu de $user.

Et il est inutile dappeler get_userdata () puisque get_users () renvoie déjà des objets utilisateur:

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>"; } 

Commentaires

  • La suppression du code redondant fonctionne pour les éléments stockés dans la table wp_users. Le prénom / nom est cependant méta et stocké dans wp_usermeta. [Je ' je suis sûr que vous le savez déjà :)] Donc, en utilisant $user->user_firstname isn ' t sortir quoi que ce soit. Quest-ce que je ne comprends pas? Merci @Scribu
  • get_users effectue une jointure à la méta-table, et le paramètre des champs par défaut est all pour que les métadonnées doivent revenir dans la requête (sauf si une valeur donnée nest pas ' actuellement définie pour le ou les utilisateurs donnés). Vérifiez que les utilisateurs pour lesquels vous ' ne voient pas de prénom pour qui en ont définitivement un.

Réponse

Votre code ne fonctionne pas car dans la ligne foreach get_userdata($bloguser->user_id);, $bloguser est une variable objet inconnue. Veuillez essayer ce code:

$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>"; 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *