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. alamedagraphik

    C’est une très bonne info,
    depuis le temps que je cherchais à résoudre ce problème.
    Car même en bloquant l’accès par htaccess cela n’était efficace.
    Merci

  2. 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 !

  3. 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

    1. Aurélien Denis auteur de l’article

      Répondu, désolé je ne l’avais pas vu passer !

  4. realisite

    Petite question:

    Ece que une M.A.J de WordPress fait sauter ce paramètre?…

    Merci

  5. Aurélien Denis auteur de l’article

    Non pas si on fait un mu-plugin.

  6. 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

    1. Aurélien Denis auteur de l’article

      Bonjour,

      dans le fichier functions.php du thème par exemple.

Les commentaires sont fermés.