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()?


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
}

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 .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.