Sto cercando di creare una tabella di utenti per tipo di ruolo. Qual è il metodo migliore per ottenere lID utente? Il mio obiettivo è stampare ogni utente prima & cognome, nome utente ed email.

Quello che ho ora:

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

nota: nel mio esempio precedente, ottenere lID utente non funziona.

Riferimento codex: get_users ()

Risposta

Il tuo codice non funziona perché “stai utilizzando $bloguser invece di $user.

E non ha senso chiamare get_userdata () poiché get_users () restituisce già oggetti utente:

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

Commenti

  • Leliminazione del codice ridondante funziona per le cose memorizzate nella tabella wp_users. Il nome / cognome è però meta e viene memorizzato in wp_usermeta. [Sono ' sono sicuro che tu lo sappia già :)] Quindi utilizzare $user->user_firstname non è ' t mettere fuori niente. Cosa non sto capendo? Grazie @Scribu
  • get_users esegue ununione alla meta tabella e il parametro dei campi è impostato su all in modo che i metadati dovrebbero tornare nella query (a meno che un determinato valore non sia ' t attualmente impostato per gli utenti specificati). Verifica che gli utenti per i quali ' non visualizzi un nome per definately ne abbiano uno.

Rispondi

Il codice non funziona perché nella riga foreach loop get_userdata($bloguser->user_id);, $bloguser è una variabile oggetto sconosciuta. Prova questo codice:

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *