Bloquer l’accès au back-office de WordPress pour un rôle utilisateur

Vous disposez de comptes utilisateurs mais vous ne souhaitez pas que ces derniers accèdent aux back-office de WordPress ? Le recours à ces quelques lignes de code vous permettra d’exclure les utilisateurs avec le rôle d’abonné de votre administration.

De nombreux sites WordPress autorisent l’enregistrement de comptes utilisateurs avec des usages exclusivement limités au front-office : espace client, zone réservée aux membres, forum… les cas sont multiples et variés pour justifier un tel blocage du back-office.

L’exemple ci-dessous exclut les abonnés mais à vous de l’adapter selon vos besoins :

/* Bloquer accès aux non-admins */
function wpc_block_dashboard() {
	$file = basename($_SERVER['PHP_SELF']);
	if (is_user_logged_in() && is_admin() && !current_user_can('edit_posts') && $file != 'admin-ajax.php') {
		wp_redirect( home_url() );
		exit();
	}
}
add_action('init', 'wpc_block_dashboard');

Vous pouvez modifier la capacité en changeant edit_posts par celle de votre choix conformément au codex.

9 commentaires

  1. David Magny

    Vraiment intéressant ! Ayant moi-même un blogue communautaire, c’est toujours dérangeant lorsque les utilisateurs qui connaissent un peu WordPress passe par le back office. Merci beaucoup pour ce partage !

  2. Jaques

    Hello,

    Merci pour vos articles, je vois ai récemment envoyé un mail pour savoir comment vous avez fait pour faire dépasser votre logo de la barre de menu. Je ne trouve pas comment faire : est ce un thème, un plugin ou autre chose ?

    Merci beaucoup

  3. THOMASLENE

    Bonjour,
    Super pour le code c’est ce que je cherchais, sans passer par un Plugin : mais question, je l’ajoute dans quel fichier wp-config.php ou ailleurs ?
    D’avance merci

Laisser un commentaire