WP – Plugin Tipp – Userlevel abfragen

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 17 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

WordPress bringt ein Rollensystem mit, dabei kann man jedem User eine Rolle zuweisen: registrierter Leser (0), Mitarbeiter (1), Autor (2), Herausgeber (7) und Administrator (10). Dies ist allerdings nur unter WP 2.* so, denn unter WP 1.* wurden die Befugnisse 1-10 direkt zugewiesen.
Nun muss man beim schreiben von Plugins diese Rolle manchmal abfragen und um dies ein wenig übersichtlicher und schneller zu finden, habe ich die API durchforstet und mir die wichtigsten Punkte hier abgelegt.

Die ID und die zugeordneten Level sind in der Datenbank in Tabelle Tabel_Präfix_usermeta zu finden. Die Level finden sich im Feld (Schlüssel) meta_key und Datensatzeintrag Table_Präfix_user_level. Das ID ist Schlüsselfeld user_id .

Zu den verschiedenen Möglichkeiten

Jedem User kann ein Name zugeordnet werden, der von Userlevel abhängt. Im beispiel wir dem Administrator der Name „Neuer_Name“ zugeordnet.


// Start Userabfrage
$role = get_role('administrator');
$role->add_cap('Neuer_Name');

Das Abfargen des Benutzerlevels erfolgt mir der Funktion current_user_can()

Die ganze Abfrage für Editor und Administrator sieht dann folgendermaßen aus.


// Start Userabfrage
$role = get_role('administrator');
if ($role !== NULL)
	$role->add_cap('Neuer_Name');

$role = get_role('editor');
if ($role !== NULL)
	$role->add_cap('Neuer_Name');
		
if ( current_user_can('Neuer_Name') ) {
	echo " ";
}
	else {
	echo " ";
}	// Ende Userabfrage

Ebenso können die Befugnisse des Benutzers (1-10) abgefragt werden.


$user_id = 1;
$user = new WP_User($user_id);

// Abfrage Befugnisse
if ( $user->has_cap('Neuer_Name') ) ...

Außerdem können komplett neue Rollen definiert werden.


$role = add_role('Neuer_Name', 'Neuer Name');

$role->add_cap('Neuer_Name');

Weiterführende Links:

Von Frank Bültge

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.