Heim > Artikel > CMS-Tutorial > 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; } }
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/' );
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')
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(); } }
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!