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:
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:
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:
So nutzt du den User Role Editor:
- Installiere das Plugin über Plugins > Installieren.
- Gehe zu Benutzer > User Role Editor.
- 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:
Falls du mehr Kontrolle brauchst, lohnt es sich, eigene Rollen und Berechtigungen individuell zu konfigurieren!
Wir haben diesen Blogbeitrag mit KI-Unterstützung erstellt.