Maison > Tutoriel CMS > WordPresse > le corps du texte

Comment empêcher certains rôles d'utilisateur WordPress d'accéder au backend

藏色散人
Libérer: 2020-04-05 17:10:00
avant
2992 Les gens l'ont consulté

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;
}
}
Copier après la connexion

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/' );
Copier après la connexion

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')
Copier après la connexion

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();
}
}
Copier après la connexion

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!

Étiquettes associées:
source:zmingcx.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal