Mam dość specyficzny wymóg, aby wyświetlać inny tekst w etykiecie pola na stronie profilu użytkownika w oparciu o rolę bieżącego użytkownika. Nie potrafię wymyślić, jak sprawdzić, czy obecne użycie jest „autorem”.
Szukam funkcji takiej jak:
is_user_in_role($user, "author");
Wyobrażam sobie, że jest to dość proste, ale szukałem zbyt długo bez odpowiedzi, więc pomyślałem, że opublikuję to tutaj.
wp-admin
users
user-roles
jessegavin
źródło
źródło
Szukałem sposobu na uzyskanie roli użytkownika za pomocą identyfikatora użytkownika. Oto, co wymyśliłem:
Następnie
is_user_in_role()
można zaimplementować funkcję:źródło
Możesz także po prostu utworzyć nowy obiekt użytkownika:
Nie jestem pewien, która wersja
get_user_roles_by_user_id
została usunięta, ale nie jest to już dostępna funkcja.źródło
Oto funkcja, która akceptuje użytkownika i rolę dla większej elastyczności:
źródło
Wywoływanie ról w
$user->roles
obiekcie użytkownika nie zwraca wszystkich ról. Prawidłowy sposób sprawdzenia, czy użytkownik ma rolę lub zdolność, jest następujący. (Działa to w wersji wp 2.0.0 i nowszej). Poniższa funkcja działa z identyfikatorem użytkownika, za pomocą którego można uzyskać identyfikator bieżącego użytkownika$current_user_id = get_current_user_id();
źródło