Benutzerrollen und Berechtigungen in WordPress individuell anpassen

Warum sind Benutzerrollen in WordPress wichtig?

WordPress besitzt ein integriertes Benutzerrollensystem, mit dem du genau festlegen kannst, welche Nutzer was auf deiner Website tun dürfen. Standardmäßig gibt es folgende Rollen:

  • Administrator – Hat vollen Zugriff auf die Website.
  • Redakteur – Kann Inhalte bearbeiten, veröffentlichen und verwalten.
  • Autor – Kann eigene Beiträge schreiben und veröffentlichen.
  • Mitarbeiter – Kann Beiträge schreiben, aber nicht veröffentlichen.
  • Abonnent – Hat nur Lesezugriff.

Warum eigene Benutzerrollen anlegen?

Nicht jede Website passt in dieses Schema. Falls du z. B. einen Support-Mitarbeiter, Gastautor oder Kursleiter brauchst, kannst du eigene Benutzerrollen mit individuellen Berechtigungen erstellen.

Benutzerrollen erstellen: Eigene Rolle definieren

Die Funktion add_role() erlaubt es, eine neue Benutzerrolle mit speziellen Rechten zu erstellen.

Beispiel: Support-Mitarbeiter hinzufügen

Falls du eine WordPress-Website mit Support-Funktion betreibst, kannst du eine Rolle „Support-Mitarbeiter“ mit folgenden Rechten erstellen:

  • Kann Support-Anfragen sehen
  • Kann eigene Beiträge bearbeiten
  • Kann keine Beiträge veröffentlichen
function create_support_role() {
    add_role(
        'support_mitarbeiter',
        __('Support Mitarbeiter'),
        array(
            'read' => true,
            'edit_posts' => true,
            'delete_posts' => false,
            'publish_posts' => false,
            'upload_files' => true
        )
    );
}
add_action('init', 'create_support_role');

Nach diesem Code erscheint die neue Benutzerrolle in Benutzer > Alle Benutzer > Rolle ändern.

Bestehende Benutzerrollen anpassen

Falls du eine bestehende Rolle ändern möchtest, nutzt du get_role().

Beispiel: Autoren das Bearbeiten von Seiten erlauben

Standardmäßig können Autoren nur Beiträge schreiben, aber keine Seiten bearbeiten. Um das zu ändern, kannst du diese Funktion nutzen:

function modify_author_permissions() {
    $role = get_role('author');
    $role->add_cap('edit_pages');
}
add_action('init', 'modify_author_permissions');

Nach diesem Code können Autoren auch Seiten bearbeiten.

Spezielle Berechtigungen entziehen

Falls du einer Rolle bestimmte Rechte entziehen möchtest, kannst du remove_cap() verwenden.

Beispiel: Redakteuren das Löschen von Beiträgen verbieten

Falls du nicht möchtest, dass Redakteure Beiträge löschen können:

function restrict_editor_permissions() {
    $role = get_role('editor');
    $role->remove_cap('delete_posts');
}
add_action('init', 'restrict_editor_permissions');

Nun können Redakteure Inhalte noch bearbeiten, aber nicht löschen.

Benutzerrollen löschen

Falls du eine Benutzerrolle nicht mehr benötigst, kannst du sie mit remove_role() entfernen.

function remove_support_role() {
    remove_role('support_mitarbeiter');
}
add_action('init', 'remove_support_role');

Achtung: Nach dem Entfernen einer Rolle müssen Benutzer dieser Rolle einer anderen Rolle zugewiesen werden!

Benutzerrollen mit Plugins verwalten

Falls du keine Code-Anpassungen machen möchtest, gibt es Plugins, mit denen du Rollen und Berechtigungen per Klick verwalten kannst:

  • User Role Editor – Ermöglicht das Erstellen und Ändern von Rollen über das WordPress-Backend.
  • Members – Fügt eine leistungsfähige Benutzerverwaltung hinzu.

So nutzt du den User Role Editor:

  1. Installiere das Plugin über Plugins > Installieren.
  2. Gehe zu Benutzer > User Role Editor.
  3. Wähle eine Rolle aus und bearbeite ihre Berechtigungen.

Benutzerrechte im Code prüfen

Falls du Berechtigungen direkt im Code abfragen möchtest, kannst du current_user_can() verwenden.

Beispiel: Speziellen Content nur für Redakteure anzeigen

Falls ein Bereich nur für Redakteure sichtbar sein soll:

if (current_user_can('edit_others_posts')) {
    echo "Dieser Inhalt ist nur für Redakteure sichtbar.";
}

Zusätzlicher Schutz: Benutzerrollen nur für bestimmte Seiten freischalten

Falls du verhindern möchtest, dass Benutzer mit bestimmten Rollen bestimmte Seiten aufrufen, kannst du sie automatisch weiterleiten.

function restrict_page_access() {
    if (!current_user_can('administrator') && is_page('geheime-seite')) {
        wp_redirect(home_url());
        exit;
    }
}
add_action('template_redirect', 'restrict_page_access');

Nun können nur Administratoren die Seite „Geheime Seite“ aufrufen.

Fazit

Die Benutzerrollen in WordPress sind flexibel anpassbar. Mit ein paar Code-Zeilen kannst du:

  • Eigene Rollen wie „Support-Mitarbeiter“ erstellen
  • Bestehende Rollen erweitern oder einschränken
  • Inhalte nur für bestimmte Rollen sichtbar machen
  • Benutzerrollen über ein Plugin verwalten

Falls du mehr Kontrolle brauchst, lohnt es sich, eigene Rollen und Berechtigungen individuell zu konfigurieren!

Wir haben diesen Blogbeitrag mit KI-Unterstützung erstellt.

Similar Posts