Ik “probeer een tabel te maken van gebruikers op roltype. Wat is de best-practices methode om de gebruikers-ID te krijgen? Mijn doel is om af te drukken elke gebruiker eerst & achternaam, gebruikersnaam en e-mailadres.

Wat ik nu heb:

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

opmerking: in mijn voorbeeld hierboven werkt het ophalen van de gebruikers-ID niet.

Codexreferentie: get_users ()

Antwoord

Je code werkt niet omdat je “$bloguser gebruikt in plaats van $user.

En het heeft geen zin om get_userdata () aan te roepen aangezien get_users () al gebruikersobjecten retourneert:

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

Reacties

  • Het verwijderen van de overtollige code werkt voor dingen die zijn opgeslagen in de wp_users -tabel. De voor- / achternaam is echter meta en wordt opgeslagen in wp_usermeta. [Ik ' weet zeker dat je dit al weet :)] Dus $user->user_firstname gebruiken isn ' n iets uitdoven. Wat begrijp ik niet? Bedankt @Scribu
  • get_users voert een join uit met de metatabel, en de veldenparameter is standaard all zodat metagegevens zouden terug moeten komen in de zoekopdracht (tenzij een gegeven waarde n ' t momenteel is ingesteld voor de gegeven gebruiker (s)). Verifieer dat de gebruikers waarvan u ' geen voornaam ziet, er zeker een hebben ingesteld.

Antwoord

Uw code werkt niet omdat in foreach lus get_userdata($bloguser->user_id); regel, $bloguser is een onbekende objectvariabele. Probeer deze 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>"; 

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *