6.3. Rollen

Eine so genannte „Rolle“ ist eine Zusammenfassung von mehreren Benutzerrechten (Capabilities) die einem Benutzer zugewiesen werden. Beispielsweise hat ein Super Admin alle möglichen Benutzerrechte einer Seite und darf damit z.B. neue Plugins installieren während ein Autor nur Artikel schreiben darf.

WordPress bringt bereits sechs verschiedene Rollen mit (in Klammern die jeweils deutschen Begriffe):

  • Super Admin (Super Administrator)
    Jemand, der im Multisite-Modus alle Netzwerk-Funktionen steuern kann.
  • Admin (Administrator)
    Jemand, der Zugang zu allen Funktionen einer einzelnen Seite hat.
  • Editor(Redakteur)
    Jemand, der Artikel und Seiten anlegen, publizieren und löschen darf. Und zwar auch die, die ein anderer Benutzer erstellt hat.
  • Author (Autor)
    Jemand, der die eigenen Artikel und Seiten anlegen, publizieren und löschen darf.
  • Contributor (Mitarbeiter)
    Jemand, der eigene Artikel und Seiten anlegen und löschen aber nicht publizieren darf.
  • Subscriber (Abonnent)
    Jemand, der sich auf der WordPress-Seite anmelden und sein Profil bearbeiten kann, jedoch keine weiteren Rechte hat.

Welche Benutzerrechte (Capabilites) eine Rolle genau hat, können Sie selbst im Codexph von WordPress.org nachlesen: https://codex.wordpress.org/Roles_and_Capabilities#Capability_vs._Role_Table.

Auf eine Rolle überprüfen

WordPress selbst stellt leider keine Funktion zur Verfügung mit der sich feststellen lässt, ob ein Benutzer eine bestimmte Rolle hat. Sie können sich diese Funktion aber selbst nachbauen. Und zwar wie folgt:

You’re not allowed to see this content. Please log in first.

Rollen hinzufügen

Natürlich haben Sie auch die Möglichkeit eigens definierte Rollen hinzuzufügen. Da diese Daten in die Datenbank gespeichert werden ist es ratsam, eine Rolle nur einmalig (z.B. während der Plugin-Aktivierung) zu WordPress hinzuzufügen.

You’re not allowed to see this content. Please log in first.

Rollen entfernen

Da alle Rollen in der Datenbank gespeichert werden, bleiben diese auch nach der Plugin-Deaktivierung erhalten. Falls gewollt, sollten Sie eine Rolle daher mit der Plugin-Deaktivierung löschen. Vorher sollten Sie aber überprüfen, ob es noch Benutzer gibt, der die zu löschende Rolle zugewiesen ist.

You’re not allowed to see this content. Please log in first.

Eine Rolle auslesen

<?php
function get_role( $role ) {
	...
}
?>

Dabei gilt:

You’re not allowed to see this content. Please log in first.

Rolle zu einem Benutzer hinzufügen bzw. ersetzen

Beim Editieren eines Benutzers erlaubt WordPress nur das Einstellen einer einzigen Rolle. Es ist zwar möglich, mittels der add_role() Methode der Klasse WP_User eine weitere hinzuzufügen, jedoch wird diese beim nächsten Editieren eines Benutzers wieder entfernt:

You’re not allowed to see this content. Please log in first.

Benutzerrechte zu einer Rolle hinzufügen und entfernen

Lesen Sie im Kapitel 5.2.: „Benutzerrechte erstellen“ und „Benutzerrechte entfernen“ mehr zum Thema.

Auf ein Benutzerrecht prüfen

Eine Rolle kann auch auf ein Benutzerrecht hin überprüft werden. Nutzen Sie dazu die Methode has_cap() der Klasse WP_Role:

<?php
function has_cap( $cap ) {
	...
}
?>

Es gilt:

You’re not allowed to see this content. Please log in first.