WP – Plugin Tipp – Userlevel abfragen

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.

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:

Comments are closed.