Diije

Quick Hack : Empêcher la connexion pour les abonnés

Suite à une question de l’ami Hervé de Infiniclick, dont je vous recommande au passage l’excellent forum (et puisque je fais de la pub, pas de jaloux, le forum de Kaddiern est très bien aussi :p), voici un petit hack à placer dans le fichier functions.php du thème de votre blog WordPress.

Un panneau sens interdit original

Son but ? Interdire aux utilisateurs Abonnés de se connecter à votre interface d’administration.

Placez donc ce bout de code dans le fichier functions.php de votre thème :

function dfr_control_login() {
	//ne s'applique pas aux contributeurs, auteurs, éditeurs, admins
	if (!current_user_can('edit_posts') ){
		wp_logout();
	}
}
add_action('wp_login','dfr_control_login');

Lorsqu’un utilisateur se connecte, l’action wp_login est déclenchée, et notre fonction s’exécute. Si l’utilisateur en question n’a pas l’autorisation d’éditer des articles (la capacité edit_posts pour WordPress), on exécute la fonction wp_logout() qui va automatiquement le déconnecter.

Les abonnés qui tenteront de se connecter seront donc tout de suite ramenés sur l’écran de login. Le gros défaut de ce hack est qu’il ne fournit aucune explication à l’utilisateur à qui l’on a interdit de se connecter, ce qui peut être assez frustrant. J’espère que cela vous donnera envie de creuser un peu plus pour trouver moyen de mieux faire, et si c’est le cas, partagez donc votre solution en commentaires !

Enfin, je vous encourage à consulter la liste des rôles et capacités de WordPress au cas où vous souhaiteriez adapter ce code pour interdire le login à un type d’utilisateur particulier 🙂