Beschränken Sie den Zugriff auf die Seite abhängig vom Benutzerlevel

Ich wurde gebeten, ein WordPress zu erstellen, das den Zugriff auf Posts mit einem bestimmten benutzerdefinierten Post-Typ basierend auf der Ebene der angemeldeten Benutzer beschränkt. Es wird eine Reihe von vorgefertigten Benutzerrollen geben und sie möchten wählen, welche Ebenen jeden Beitrag anzeigen können, wenn der Beitrag geschrieben wird.

Was ist der beste Weg, dies zu tun?

Solutions Collecting From Web of "Beschränken Sie den Zugriff auf die Seite abhängig vom Benutzerlevel"

Es gibt zwei Möglichkeiten, dies zu tun. Fast jedes anständige Mitgliedschaft Management Plugin ermöglicht es Ihnen, Inhalte auf eine bestimmte Benutzerrolle zu beschränken und Plugins wie Role Scoper sind noch flexibler. Für eine Code-basierte Lösung würden Sie den gewünschten Theme-Vorlagendateien je nach Bedarf einige Variationen hinzufügen:

< ?php if(current_user_can('some_capability') ); ?> 

und ersetzen Sie some_capability mit der voreingestellten oder benutzerdefinierten Fähigkeit für die niedrigste gewünschte Rolle. Zum Beispiel, um auf Editoren und Admins zu beschränken (unter der Annahme, keine Anpassung):

 < ?php if(current_user_can('delete_others_posts') ); ?> 

Es ist etwas herausfordernder, diese functionalität einem beliebigen Post im benutzerdefinierten Post-Typ hinzuzufügen. Sie würden in das Hinzufügen von Aktionen und functionen ähnlich wie in diesem Tutorial Smashing Magazine beteiligt werden , um Beiträge nach Benutzername zu beschränken. Sie müssen lediglich eine Liste von Benutzern abrufen, um eine Liste mit Rollen oder functionen zu erhalten. Auch hier gibt es eine Welt von Plugins, die das schon tun … wenn Ihre Bedürfnisse nicht komplex sind, möchten Sie das Rad vielleicht nicht neu erfinden.