Heim  >  Artikel  >  CMS-Tutorial  >  So verhindern Sie, dass einige WordPress-Benutzerrollen das Backend betreten

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

藏色散人
藏色散人nach vorne
2020-04-05 17:10:002984Durchsuche

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:zmingcx.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen