S’il est possible de s’inscrire sur votre site (boutique en ligne, site de membre ou autre), vous pouvez, pour des raisons de sécurité, interdire à tous vos membres d’accéder à l’administration.
En effet, si vous avez créé une interface pour leur permettre de modifier leurs informations, ils n’ont aucune raison d’aller dans l’administration.
Le snippet suivant redirigera tous les membres non-administrateurs qui tenteraient d’accéder à l’administration vers la page d’accueil :
Copiez-collez ce snippet dans le fichier functions.php
de votre thème enfant.
Vous pouvez modifier le rôle administrator
par celui de votre choix.
Les autres rôles par défaut de WordPress sont : subscriber
, contributor
, author
et editor
.
Avec ce code, vous serez le seul à pouvoir accéder au back-office de votre site.
Bonjour,
J’imagine qu’on peut noter administrator,author ? ça marche pour donner accès qu’aux admins et author ? et si on veut rajouter un rôle créé par le plugin membres, on fait comment pour trouver le bon terme à employer ?, Merci
Bonjour,
Oui tu peux noter n’importe quel rôle et en mettre plusieurs si tu le souhaites.
Pour ce qui est des rôles crées avec un plugin, cela dépends du plugin mais essaye le nom du rôle que tu as crée, sinon le nom du rôle sans accent et sans majuscules, etc…
Bonjour,
Merci beaucoup pour ce snippet très utile !
Je souhaitais néanmoins vous informer qu’il entre en conflit avec le plugin WP Support Plus (lorsque connecté mode client uniquement). En espérant épargner des heures de recherche de bug à ceux et celles qui utilisent cette config !
Bon codage à tou(te)s !
Bonjour,
Pour compléter mon com précédent :
Le snippet donné sur WP Channel fonctionne avec WP Support Ticket :
https://wpchannel.com/wordpress/tutoriels-wordpress/bloquer-acces-utilisateurs-wordpress/
j’ai pensé que vous souhaiteriez mettre à jour votre code éventuellement.
Bonjour
J’ai essayé ce code sur mon site
cela bloque certain formulaires de publication en frontend pour les visiteurs
A chaque envoi je me retrouve avec une popup et un point d’exclamation lors de l’envoi
je me suis fait une frayeur ne sachant pas d’ou cela venait 🙂 mais après avoir retiré le bout de code tout fonctionne à nouveau !
Probablement une incompatibilité avec l’extension de publication en Frontend
Cordialement
Manuel
Le problème lorsque l’on ajoute votre snippet, texto, dans le fichier functions.php du thème enfant, c’est que l’on ne peut plus aller sur la page wp-admin ???
Si quelqu’un à la solution…
Merci
Cordialement
Bonjour, tu as copié la balise PHP ouvrante tout en haut du code ? Si oui essaye de la supprimer.
Merci pour votre réponse,
je ne voie pas de balise php dans votre code
en ajoutant votre code, je n’accède toujours pas à wp-admin lorsque je suis déconnecté
voici le code du fichier function.php du thème enfant
—————————————————————————————
<?php
add_action( 'wp_enqueue_scripts', 'classima_child_styles', 18 );
function classima_child_styles() {
wp_enqueue_style( 'classipost-style', get_stylesheet_uri() );
}
add_action( 'after_setup_theme', 'classima_child_theme_setup' );
function classima_child_theme_setup() {
load_child_theme_textdomain( 'classima', get_stylesheet_directory() . '/languages' );
}
// Rediriger les non-administrateurs vers la page d'accueil À partir de l'administration
function wpm_admin_redirection() {
//Si on essaye d'accéder à L'administration Sans avoir le rôle administrateur
if ( is_admin() && ! current_user_can( 'administrator' ) ) {
// On redirige vers la page d'accueil
wp_redirect( home_url() );
exit;
}
}
add_action( 'init', 'wpm_admin_redirection' );
—————————————————————————————
Merci pour votre aide.
Bien cordialement
André Bellesoeur
Re Alex,
Encore moi, désolé pour le dérangement.
J’ai trouvé la solution et là une fois déconnecté, j’ai accès à ma page wp-admin en tant qu’administrateur et les membres non-administrateurs sont redirigés vers la page accueil. Voici la fonction :
—————————————————————————————
function baw_no_admin_access()
{
if( !current_user_can( ‘administrator’ ) ) {
wp_redirect( home_url() );
die();
}
}
add_action( ‘admin_init’, ‘baw_no_admin_access’, 1 );
—————————————————————————————-
Bien cordialement
André Bellesoeur
Bonjour merci d’avoir partager ce code mais pourriez vous expliquer qui est administrateur et comment mettre quelq’un administrateur, merci.
Bonjour, tu auras toutes les infos ici : https://wpmarmite.com/gestion-utilisateurs-wordpress/