So erstellen Sie eine benutzerdefinierte Benutzerrolle in WordPress
Veröffentlicht: 2021-02-06Beim Erstellen einer Website mit einem CMS ist Flexibilität immer willkommen. Zum Glück hat WordPress mehr als nur seinen Anteil, mit Themen und Plugins, die es uns ermöglichen, ein sehr individuelles Erlebnis zu schaffen.
Aber seine Flexibilität geht über die zusätzlichen Dinge hinaus, die wir installieren können. Es ist tatsächlich direkt in den Kern der Software eingebrannt.
Die Möglichkeit, benutzerdefinierte Benutzerrollen zu erstellen, ist ein leuchtendes Beispiel. Heute werfen wir einen Blick darauf, was sie sind, warum Sie sie verwenden möchten, und einige verschiedene Techniken, um sie zu erstellen.
Feine Kontrolle über Benutzerberechtigungen
In jeder WordPress-Installation haben Sie bereits Zugriff auf eine Auswahl von Standardbenutzerrollen. Sie ermöglichen es uns festzulegen, was Benutzer im Backend (auch bekannt als Dashboard) der Website tun können und was nicht.
Das macht durchaus Sinn. Nicht jeder, der Inhalte verwaltet, muss über Administratorrechte verfügen. Daher können wir jedem Benutzer je nach Bedarf eine Rolle zuweisen. Es ist eine großartige Sicherheitsmaßnahme und kann besser vor Pannen oder sogar einer Binge-Installation von Plugins schützen.
Das funktioniert auch im Frontend. Wenn Sie möchten, dass nur angemeldete Benutzer bestimmte Inhalte sehen, können Sie diese Funktionalität in Ihr Design einbauen oder über ein Mitgliedschafts-Plugin hinzufügen.
Aber während die standardmäßigen Benutzerrollen (Administrator, Editor, Autor, Mitwirkender und Abonnent) nützlich sind, gibt es Zeiten, in denen Sie dieses zusätzliche Maß an Kontrolle benötigen. Aus diesem Grund bietet WordPress die Möglichkeit, eigene benutzerdefinierte Rollen zu erstellen.
Wann eine benutzerdefinierte Rolle verwendet werden sollte
Eine benutzerdefinierte Benutzerrolle kann sich in mehreren Szenarien als nützlich erweisen. Hier sind einige der häufigsten, denen Sie begegnen könnten:
Sie haben Benutzer, die verschiedene Inhaltstypen verwalten
Standardmäßig enthält WordPress zwei wichtige öffentlich zugängliche Inhaltstypen: Beiträge und Seiten. Es ist jedoch einfach, durch die Verwendung benutzerdefinierter Beitragstypen weitere hinzuzufügen. Sie können beispielsweise Beitragstypen für Dinge wie Pressemitteilungen oder Mitarbeiter erstellen. Außerdem können verschiedene Plugins auch ihre eigenen Beitragstypen installieren.
Große Organisationen haben möglicherweise mehrere verschiedene Arten von Inhalten, für deren Verwaltung bestimmte Personen zuständig sind. In diesem Fall wäre eine Standardbenutzerrolle nicht ideal, da sie möglicherweise Zugriff auf das gesamte Los bietet (oder das Gegenteil, je nach Konfiguration). Eine benutzerdefinierte Rolle würde es jedoch verschiedenen Benutzern ermöglichen, nur die Beitragstypen zu sehen, die Sie ihnen zuweisen.
Ein Benutzer muss nur eine Sache tun
Es gibt Fälle, in denen ein Benutzer möglicherweise eine einzigartige Zugriffsebene auf Funktionen auf Ihrer Website benötigt. Angenommen, Sie führen einen Online-Kurs durch. Möglicherweise haben Sie ein Teammitglied, das Zugriff auf den gesamten Kurs am Front- und Backend benötigt, um sicherzustellen, dass er ordnungsgemäß funktioniert und der Inhalt korrekt ist.
Wenn sich dieses Teammitglied nur auf den Kurs selbst konzentrieren muss, ist ein Administratorkonto möglicherweise zu viel des Guten. Mit einer benutzerdefinierten Benutzerrolle können sie ihre Arbeit erledigen, ohne sich durch unnötige Optionen wühlen zu müssen.
Sie müssen eine vorhandene Rolle „aufleveln“.
Manchmal ist eine bestehende WordPress-Benutzerrolle nahezu perfekt. Aber vielleicht gibt es diese eine zusätzliche Sache, auf die ein Benutzer zugreifen muss.
Nehmen Sie die Rolle des Autors ein. Standardmäßig können sie Beiträge veröffentlichen – aber keine Seiten. Normalerweise müssten Sie den Benutzer an den Editor weiterleiten. Das mag in manchen Fällen in Ordnung sein. Es können jedoch auch andere Funktionen enthalten sein, auf die dieser bestimmte Benutzer nicht zugreifen soll. Hier ist das Erstellen einer benutzerdefinierten Rolle möglicherweise die beste Option.
So erstellen Sie eine benutzerdefinierte Benutzerrolle
Es gibt zwei verschiedene Methoden zum Erstellen einer benutzerdefinierten WordPress-Benutzerrolle. Die erste besteht darin, Code zu einem benutzerdefinierten Plugin oder der Datei functions.php
Ihres Designs hinzuzufügen. Die zweite besteht darin, eines der vielen verfügbaren Plugins zu installieren, mit denen Sie Rollen erstellen und bearbeiten können.
Die Methode, die Sie verwenden, hängt wirklich von Ihren persönlichen Vorlieben ab. Wenn Sie Benutzerfunktionen visuell auswählen und auswählen möchten, ist ein Plugin am sinnvollsten. Wenn Sie jedoch mit Code vertraut sind und/oder nicht möchten, dass andere Administratoren mit Einstellungen herumspielen, ist das Hinzufügen eines Snippets möglicherweise das Richtige für Sie.
In jedem Fall werden wir Ihnen mit ein paar Codebeispielen und einer Auswahl an Plugins den Einstieg erleichtern.
Zunächst wird empfohlen, dass Sie sich mit den verschiedenen Benutzerfunktionen von WordPress vertraut machen. Beachten Sie auch, dass benutzerdefinierte Beitragstypen auch benutzerdefinierte Funktionen haben können. Dies kann sich im ersten Beispielszenario, das wir oben erwähnt haben, als nützlich erweisen.
Methode 1: Fügen Sie ein Code-Snippet hinzu
In diesem Beispiel erstellen wir eine Benutzerrolle mit dem Namen „Mitarbeiter“. Dies umfasst alle Funktionen der Autorenrolle, jedoch mit der zusätzlichen Möglichkeit, Seiten zu bearbeiten und zu veröffentlichen.
Jede Funktion, die wir der Rolle zuweisen, ist im folgenden Snippet aufgeführt und auf „ true “ gesetzt. Die Ausnahme hierbei ist, dass wir nicht möchten, dass Benutzer mit dieser Rolle veröffentlichte Seiten löschen, also setzen wir dies explizit auf „ false “ – nur um sicherzugehen.
Auch dieser Code würde in die Datei functions.php
Ihres Themes oder optional in ein benutzerdefiniertes Plugin eingefügt werden.
/* Create Staff Member User Role */ add_role( 'staff_member', // System name of the role. __( 'Staff Member' ), // Display name of the role. array( 'read' => true, 'delete_posts' => true, 'delete_published_posts' => true, 'edit_posts' => true, 'publish_posts' => true, 'upload_files' => true, 'edit_pages' => true, 'edit_published_pages' => true, 'publish_pages' => true, 'delete_published_pages' => false, // This user will NOT be able to delete published pages. ) );
Sobald wir diesen Code gespeichert und unsere Website im Browser aktualisiert haben, können wir einen neuen Benutzer mit dieser Rolle hinzufügen.
Wenn sich unser Benutzer mit der Rolle „Mitarbeiter“ anmeldet, kann er sowohl Seiten als auch Beiträge sehen.
Eine andere Alternative wäre, der bestehenden Autorenrolle einfach ein paar Fähigkeiten hinzuzufügen. Wir können dies über die Funktion add_cap()
tun:
/* Upgrade the Author Role */ function author_level_up() { // Retrieve the Author role. $role = get_role( 'author' ); // Let's add a set of new capabilities we want Authors to have. $role->add_cap( 'edit_pages' ); $role->add_cap( 'edit_published_pages' ); $role->add_cap( 'publish_pages' ); } add_action( 'admin_init', 'author_level_up');
Diese beiden Code-Snippets machen im Wesentlichen dasselbe. Das Hinzufügen der neuen Mitarbeiterrolle ist jedoch möglicherweise am besten in Fällen, in denen Sie bereits Benutzer mit der Autorrolle haben und nicht möchten, dass sie über zusätzliche Funktionen verfügen.
Methode 2: Verwenden Sie ein Plugin
Die obige Funktionalität kann einfach durch die Verwendung eines Plugins repliziert werden. Für diese Art von Benutzerrollen- und Berechtigungsverwaltung wurden mehrere erstellt. Sie bieten den Vorteil, dass sie eine GUI verwenden und dem gesamten Prozess eine Ebene der Bequemlichkeit hinzufügen.
Werfen wir einen Blick auf einige der beliebtesten Optionen:
Benutzerrollen-Editor
Mit dem Benutzerrollen-Editor ist das Hinzufügen oder Entfernen von Funktionen für eine Rolle so einfach wie das Aktivieren oder Deaktivieren eines Kontrollkästchens in den Einstellungen. Sie haben auch die Möglichkeit, Ihre eigenen benutzerdefinierten Benutzerrollen zu erstellen und alle erforderlichen Funktionen festzulegen. Das Plugin unterstützt auch Multisite-Installationen von WordPress.
WPFront-Benutzerrollen-Editor
WPFront User Role Editor bietet ähnliche Funktionen, mit denen Sie Benutzerrollen hinzufügen oder bearbeiten können. Es ermöglicht Administratoren aber auch, Benutzer von einer Rolle zu einer anderen zu migrieren und einzelnen Benutzern mehrere Rollen zuzuweisen.
Advanced Access Manager
Wenn Sie etwas mit einem breiteren Anwendungsbereich suchen, ist Advanced Access Manager möglicherweise eine gute Wahl für Sie. Es bietet Rollen- und Funktionsverwaltung sowie die Möglichkeit, den Zugriff auf Frontend- und Backend-Funktionen wie Menüs und Widgets zu steuern.
Kennen Sie Ihre Rollen
Die Möglichkeit, benutzerdefinierte Benutzerrollen zu erstellen, ist nur ein weiterer Grund, WordPress zu lieben. Es ist etwas sehr Nischenhaftes, aber es kann äußerst hilfreich sein, wenn Sie etwas brauchen, das über die Standardrollen hinausgeht.
Wenn Sie sich also das nächste Mal in einer Situation befinden, in der die Kontrolle über die Benutzerfunktionen erforderlich ist, wissen Sie, dass Ihnen dieses leistungsstarke Tool zur Verfügung steht.