Jag försöker skapa en tabell över användare efter rolltyp. Vad är den bästa metoden för att få användar-id? Mitt mål är att skriva ut varje användares första & efternamn, användarnamn och e-post.

Vad jag har nu:

$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: I mitt exempel ovan fungerar inte användar-id.

Codexreferens: get_users ()

Svar

Din kod fungerar inte eftersom du använder $bloguser istället för $user.

Och det är ingen mening att ringa get_userdata () eftersom get_users () redan returnerar användarobjekt:

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

Kommentarer

  • Att släppa den redundanta koden fungerar för saker som är lagrade i wp_users -tabellen. För- / efternamn är dock meta och lagras i wp_usermeta. [Jag ' är säker på att du redan vet det här :)] Så att använda $user->user_firstname isn ' t lägga ut något. Vad förstår jag inte? Tack @Scribu
  • get_users utför en koppling till metatabellen och fälten param är standard all metadata ska komma tillbaka i frågan (såvida inte ett visst värde inte är ' t som för närvarande är inställt för den eller de angivna användarna). Verifiera de användare som du ' inte ser ett förnamn för definitivt har en uppsättning.

Svar

Din kod fungerar inte eftersom i foreach loop get_userdata($bloguser->user_id); rad, $bloguser är en okänd objektvariabel. Försök med den här koden:

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

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *