So verhindern Sie, dass einige WordPress-Benutzerrollen das Backend betreten

藏色散人
Freigeben: 2020-04-05 17:10:00
nach vorne
3005 Leute haben es durchsucht

So verhindern Sie, dass einige WordPress-Benutzerrollen das Backend betreten

Manchmal möchten wir WordPress den Zugriff einiger Benutzerrollen auf das Backend einschränken, was mit dem folgenden Code erreicht werden kann.

1. Nur Administratoren, Redakteure und Autorenrollen dürfen auf das Backend zugreifen

Fügen Sie den folgenden Code zur aktuellen Theme-Funktionsvorlage „functions.php“ hinzu:

add_action( 'init', 'zm_redirect_wp_admin' );
function zm_redirect_wp_admin() {
if ( is_admin() && is_user_logged_in() && !current_user_can( 'manage_options' ) && !current_user_can( 'publish_pages' ) && !current_user_can( 'publish_posts' ) && ( !defined( 'DOING_AJAX' ) || !DOING_AJAX )  ){
wp_safe_redirect( home_url() );
exit;
}
}
Nach dem Login kopieren

Bestimmen Sie, ob Um sich anzumelden und Benutzerrollen, springen Benutzerrollen, denen der Zugriff auf das Backend untersagt ist, direkt zur Homepage der Website.

Wenn Sie zu einem bestimmten Seitenlink springen müssen, z. B. zum Front-End-Benutzercenter, können Sie den Code in Zeile 4 so ändern, dass er ähnlich ist:

wp_safe_redirect( 'https://zmingcx.com/' );
Nach dem Login kopieren

Kann nur zu springen Link innerhalb der Website, nicht auf externe Links.

Wenn nur Administratoren Zugriff auf das Backend haben, kann der Code, der Redakteuren und Autoren den Zugriff auf das Backend ermöglicht, gelöscht werden:

&& !current_user_can('publish_pages') && !current_user_can('publish_posts')
Nach dem Login kopieren

2 Rollen ab Eingabe des Backends

Die standardmäßige registrierte Benutzerrolle bezieht sich auf: WordPress-Backend → Einstellungen → Allgemein, legen Sie die Rolle in der Standardrolle für neue Benutzer fest.

if ( is_admin() && ( !defined( 'DOING_AJAX' ) || !DOING_AJAX ) ) {
$current_user = wp_get_current_user();
if($current_user->roles[0] == get_option('default_role')) {
wp_safe_redirect( home_url() );
exit();
}
}
Nach dem Login kopieren

Code von: www.ludou.org

Wenn Sie die Standardrolle für einen neuen Benutzer ändern, wird sie für Benutzer mit anderen Rollen, die zuvor registriert wurden, ungültig.

Die beiden oben genannten Codeteile haben zusätzliche Beurteilungen vorgenommen und haben keinen Einfluss auf die Front-End-Ajax-Anfrage.

Verwandte Empfehlungen: „WordPress-Tutorial

Das obige ist der detaillierte Inhalt vonSo verhindern Sie, dass einige WordPress-Benutzerrollen das Backend betreten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:zmingcx.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage