wenn der Administrator angemeldet ist

9

Wir wissen, dass is_admin()überprüft wird, ob die aktuelle URL zu DASHBOARD gehört ( ABER es wird nicht überprüft, ob der Benutzer ADMIN ist ).

Ich benutze diese Funktion, um festzustellen, ob der Administrator in WordPress angemeldet ist:

function is_admin_user(){
  require_once(ABSPATH.'wp-includes/pluggable.php'); return current_user_can('create_users'); //or 'manage_options'
}

Dies ist jedoch keine ideale Lösung. Gibt es eine eingebaute Funktion wie wp_is_administrator()?

T.Todua
quelle
3
if(current_user_can('administrator'))
Howdy_McGee
1
Was Ihr Code vorschlägt, ist, dass Sie eine Art Bootstrap verwenden, um WP-Funktionen außerhalb von WP zu starten, aber selbst in diesem Fall können Sie das verwenden, was Howdy_McGee sagt -> siehe Dokumentation
JMau

Antworten:

22

current_user_canakzeptiert einen Rollennamen, aber leider ist das Verhalten mit Rollen nicht ganz konsistent .

Das Folgende sollte funktionieren und ist ein wenig einfacher als das, was Sie haben.

$current_user = wp_get_current_user();
if (user_can( $current_user, 'administrator' )) {
  // user is an admin
}
s_ha_dum
quelle
5

Es scheint, dass der einfachste Weg tatsächlich darin besteht, current_user_can als solchen zu verwenden:

if( current_user_can( 'administrator' ) ){} // only if administrator

Dies scheint ein Duplikat zu sein .

Adal
quelle