Ich versuche, eine Tabelle mit Benutzern nach Rollentyp zu erstellen. Was ist die Best-Practice-Methode zum Abrufen der Benutzer-ID? Mein Ziel ist das Drucken Jeder Benutzer zuerst & Nachname, Benutzername und E-Mail.

Was ich jetzt habe:

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

Hinweis: In meinem obigen Beispiel funktioniert das Abrufen der Benutzer-ID nicht.

Codex-Referenz: get_users ()

Antwort

Ihr Code funktioniert nicht, weil Sie $bloguser anstelle von $user.

Und es macht keinen Sinn, get_userdata () aufzurufen, da get_users () bereits Benutzerobjekte zurückgibt:

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

Kommentare

  • Das Löschen des redundanten Codes funktioniert für Dinge, die in der Tabelle wp_users gespeichert sind. Der Vor- / Nachname ist jedoch meta und in wp_usermeta gespeichert. [Ich ' bin mir sicher, dass Sie das bereits wissen :)] Die Verwendung von $user->user_firstname ist also nicht ' nichts herausbringen. Was verstehe ich nicht? Danke @Scribu
  • get_users führt einen Join zur Metatabelle durch, und der Feldparameter ist standardmäßig all Metadaten sollten in der Abfrage zurückkommen (es sei denn, ein bestimmter Wert ist nicht ' derzeit für den / die angegebenen Benutzer festgelegt). Stellen Sie sicher, dass die Benutzer ' keinen Vornamen sehen, um definitiv einen Satz zu haben.

Antwort

Ihr Code funktioniert nicht, weil in der foreach -Schleife get_userdata($bloguser->user_id); Zeile $bloguser ist eine unbekannte Objektvariable. Bitte versuchen Sie diesen 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>"; 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.