Maison >Tutoriel CMS >WordPresse >Comment empêcher certains rôles d'utilisateur WordPress d'accéder au backend
Parfois, nous souhaitons restreindre WordPress certains rôles d'utilisateur dans l'accès au backend, ce qui peut être réalisé avec le code suivant.
1. Seuls les rôles d'administrateur, d'éditeur et d'auteur sont autorisés à accéder au backend.
Ajoutez le code suivant au modèle de fonction de thème actuel function.php :
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; } }
Déterminez si pour vous connecter et les rôles d'utilisateur, les rôles d'utilisateur qui ne sont pas autorisés à accéder au backend accéderont directement à la page d'accueil du site Web.
Si vous devez accéder à un lien de page spécifié, tel que le centre des utilisateurs frontaux, vous pouvez modifier le code de la ligne 4 pour qu'il soit similaire :
wp_safe_redirect( 'https://zmingcx.com/' );
Peut uniquement accéder au lien au sein du site, et non vers des liens hors site.
Si seuls les administrateurs sont autorisés à accéder au backend, le code qui permet aux éditeurs et aux auteurs d'entrer dans le backend peut être supprimé :
&& !current_user_can('publish_pages') && !current_user_can('publish_posts')
2. rôles d'entrer dans le backend
Le rôle d'utilisateur enregistré par défaut fait référence à : Backend WordPress → Paramètres → Général, définissez le rôle dans le rôle par défaut pour les nouveaux utilisateurs.
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 de : www.ludou.org
Si vous modifiez le rôle par défaut d'un nouvel utilisateur, il sera invalide pour les utilisateurs avec d'autres rôles qui ont déjà été enregistrés.
Les deux morceaux de code ci-dessus ont ajouté du jugement et n'affecteront pas la requête ajax frontale.
Recommandations associées : "Tutoriel WordPress"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!