Benutzerrollen und Berechtigungen in WordPress individuell anpassen

Drei leere Namensschilder an Bändern und ein Schlüsselbund, daneben eine kobaltblaue KugelKI-generiert
Inhalt

Warum sind Benutzerrollen in WordPress wichtig?

WordPress besitzt ein integriertes Benutzerrollensystem, mit dem Sie genau festlegen können, welche Nutzer was auf Ihrer 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 Sie z. B. einen Support-Mitarbeiter, Gastautor oder Kursleiter brauchen, können Sie 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 Sie eine WordPress-Website mit Support-Funktion betreiben, können Sie 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 Sie eine bestehende Rolle ändern möchten, nutzen Sie 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, können Sie 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 Sie einer Rolle bestimmte Rechte entziehen möchten, können Sie remove_cap() verwenden.

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

Falls Sie nicht möchten, 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 Sie eine Benutzerrolle nicht mehr benötigen, können Sie 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 Sie keine Code-Anpassungen machen möchten, gibt es Plugins, mit denen Sie Rollen und Berechtigungen per Klick verwalten können:

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

So nutzen Sie den User Role Editor:

  1. Installieren Sie das Plugin über Plugins > Installieren.
  2. Gehen Sie zu Benutzer > User Role Editor.
  3. Wählen Sie eine Rolle aus und bearbeiten Sie ihre Berechtigungen.

Benutzerrechte im Code prüfen

Falls Sie Berechtigungen direkt im Code abfragen möchten, können Sie 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 Sie verhindern möchten, dass Benutzer mit bestimmten Rollen bestimmte Seiten aufrufen, können Sie 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 können Sie:

  • 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 Sie mehr Kontrolle brauchen, lohnt es sich, eigene Rollen und Berechtigungen individuell zu konfigurieren!

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

Michael Rademacher

Gründer von realmaker

Michael Rademacher gründete realmaker 2003. Er entwickelt WordPress-Websites und Software, produziert Filme und Livestreams und schreibt hier über das, was er in Kundenprojekten lernt.

Über Michael

Lieber betreuen lassen?

Updates, Backups und Überwachung übernimmt wp-einfach.de – zum festen Monatspreis.

Zu wp-einfach.de