Sidebar
ein-/ausblenden

WP - Plugin Tipp - Userlevel abfragen

Plugin für WordPress SEO

Anzeige

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:

2 Kommentare zu „WP - Plugin Tipp - Userlevel abfragen“

  1. 1
    Kommentar von Trelas

    Hallo,
    gibt es ein Plugin, oder eine Möglichkeit, einen registrierten User so wie im User level 1 Schreibrechte zu geben, aber er soll im Dashboard nur schreiben sehen und nicht verwalten, oder Kommentare einsehen?
    Also User Level 0 mit nur Write, eventuell eigene Post verwalten, aber keine
    Kommentare einsehen. (Auch schon wegen der IP)

    Grüße
    Trelas

  2. 2
    Kommentar von Frank Bültge

    @Trelas: Ja, mit dem Role Manager kann man so eine Rolle erstellen.

Kommentare sind geschlossen.