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:
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.