Autoriser tous les utilisateurs comme auteur d’un contenu WordPress

Seuls les utilisateurs de rôle auteur sont autorisés à être assignés comme auteur d’un contenu (article, page ou autre) sous WordPress. Changeons ce comportement à l’aide d’un filtre et de quelques lignes de code.

Chaque utilisateur dispose d’un ou plusieurs rôles qui définissent ses capacités, autrement dit ses autorisations à interagir avec le système comme la création de nouveaux contenus. Ces rôles s’imbriquent les uns dans les autres : un utilisateur avec le rôle administrateur dispose ainsi de toutes les capacités héritées des rôles inférieurs (éditeur, auteur, contributeur et abonné).

Et pour complexifier le tout, il est possible de créer vos propres rôles utilisateurs – en général pour le besoin d’extensions. Mais restons sur les rôles natifs pour ce tutoriel.

Les utilisateurs de rang auteur ou supérieur peuvent être assignés comme auteur d’un contenu comme un article ou une page. Le rôle de l’utilisateur et l’auteur véritable d’une publication se confondent donc ici, ce qui n’est pas sans générer de la confusion… mais revenons au problème initial : autoriser n’importe quel utilisateur, quel que soit son rôle, à être défini comme auteur d’un contenu.

Il nous faut pour cela filtrer la liste déroulante présente dans l’éditeur ou dans l’édition rapide d’un contenu.

Pour ce faire, ouvrez le fichier functions.php de votre thème ou passer par une extension globale communément appelé mu-plugin. Collez ensuite ces lignes :

/* Autoriser tous les utilisateurs dans la liste déroulante */
function wpc_add_subscribers_to_dropdown($query_args) {
unset($query_args['who']);
return $query_args;
}
add_filter('wp_dropdown_users_args', 'wpc_add_subscribers_to_dropdown');

Enregistrez le tout puis retournez sur le choix de l’auteur : tous les comptes utilisateurs sont disponibles à présent dans la liste déroulante. Vous pouvez aller plus loin en filtrant sur le rôle utilisateur :

/* Autoriser tous les utilisateurs dans la liste déroulante */
function wpc_add_subscribers_to_dropdown($query_args) {

// Lister les rôles à inclure dans la liste
$query_args['role__in'] = array('author', 'subscriber');

unset($query_args['who']);
return $query_args;
}
add_filter('wp_dropdown_users_args', 'wpc_add_subscribers_to_dropdown');

Cette astuce est utile pour des sites de type annuaire par exemple.

Aurélien Denis
Publié le Mis à jour il y a 5 mois
Par Aurélien Denis

Consultant & Développeur WordPress / WooCommerce. Un site à créer, à maintenir ou à débuguer ? Contactez-moi.

Laisser un commentaire