Próbuję utworzyć tabelę użytkowników według typu roli. Jaka jest najlepsza metoda uzyskiwania identyfikatora użytkownika? Moim celem jest wydrukowanie najpierw każdy użytkownik & nazwiska, nazwa użytkownika i adres e-mail.

Co mam teraz:

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

uwaga: w powyższym przykładzie pobieranie identyfikatora użytkownika nie działa.

Kodeks: get_users ()

Odpowiedź

Twój kod nie działa, ponieważ używasz $bloguser zamiast $user.

I nie ma sensu wywoływać get_userdata (), ponieważ get_users () już zwraca obiekty użytkownika:

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

Komentarze

  • Usunięcie nadmiarowego kodu działa w przypadku rzeczy przechowywanych w tabeli wp_users. Imię / nazwisko jest jednak meta i przechowywane w wp_usermeta. [I ' m na pewno już to wiesz :)] Zatem użycie $user->user_firstname nie jest ' nie wystawiam niczego. Czego nie rozumiem? Dzięki @Scribu
  • get_users wykonuje sprzężenie z metatabelą, a parametr pola domyślnie ma wartość all, więc w zapytaniu powinny powrócić metadane (chyba że dana wartość nie jest ' t aktualnie ustawiona dla danego użytkownika (ów)). Sprawdź, czy użytkownicy, którym ' nie widzisz imienia, na pewno mają jeden zestaw.

Odpowiedź

Twój kod nie działa, ponieważ w foreach pętli get_userdata($bloguser->user_id); linii, $bloguser to nieznana zmienna obiektu. Wypróbuj ten kod:

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

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *