Încerc să creez un tabel de utilizatori după tipul de rol. Care este cea mai bună metodă de obținere a codului de utilizator? Scopul meu este să tipăresc mai întâi fiecare utilizator & nume, nume de utilizator și e-mail.

Ce am acum:

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

notă: În exemplul meu de mai sus, obținerea codului de utilizator nu funcționează.

Referința Codex: get_users ()

Răspunde

Codul tău nu funcționează deoarece folosești $bloguser în loc de $user.

Și nu are rost să apelați get_userdata () deoarece get_users () returnează deja obiecte utilizator:

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

Comentarii

  • Eliminarea codului redundant funcționează pentru lucrurile stocate în tabelul wp_users. Numele / prenumele este deși meta și este stocat în wp_usermeta. [Sunt ' sunt sigur că știi deja acest lucru :)] Deci, folosind $user->user_firstname isn ' Nu scoateți nimic. Ce nu înțeleg? Mulțumim @ Scribu
  • get_users efectuează o asociere la meta-tabel, iar câmpurile param implicite sunt all, astfel încât meta date ar trebui să revină în interogare (cu excepția cazului în care o valoare dată nu este setată în prezent pentru utilizatorul (utilizatorii) dați). Verificați dacă utilizatorii care ' nu vedeți un prenume pentru un anumit set.

Răspuns

Codul dvs. nu funcționează deoarece în linia foreach buclă get_userdata($bloguser->user_id);, $bloguser este o variabilă obiect necunoscută. Încercați acest cod:

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

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *