Tout savoir sur WordPress
Tutoriel WordPress

Autoriser l’ajout d’une catégorie pour les contributeurs

Découvrez la démarche à suivre pour autoriser les contributeurs de votre site WordPress à ajouter des catégories lors de la rédaction de leurs articles.

Après avoir découvert l’astuce pour autoriser les contributeurs à ajouter des médias dans un article, nous allons détailler une astuce permettant aux contributeurs d’avoir la possibilité d’ajouter une ou plusieurs catégories.

NB : L’astuce que je vous propose permet uniquement aux contributeurs d’ajouter une catégorie à partir de l’ajout ou l’édition d’un article. Pour une question de sécurité, les contributeurs ne sont pas autorisés à éditer et supprimer une catégorie.

Copier le code ci-dessous dans le fichier functions.php présent à la racine de votre thème :

add_action('admin_init', 'gkp_add_categories_to_contributor');
function gkp_add_categories_to_contributor() {

    $role = get_role('contributor');
    $role->add_cap('manage_categories');	
	
    // On récupère le rôle du membre connecté
    global $current_user;
    $user_role = array_shift($current_user->roles);
	
    // On supprime le menu "Catégorie"
    if( $user_role == 'contributor' )
	remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=category' );
	
    // On redirige les contributeurs qui tentent d'éditer ou supprimer une catégorie
    global $pagenow;
    if( $pagenow == 'edit-tags.php' 
	&& $_GET['taxonomy'] == 'category'
	&& $user_role == 'contributor') {		
	     wp_redirect(admin_url('edit.php'));
	     die();
    }
}

PS : Merci à ryuk pour l’idée de l’article ;)

Cet article a été mis à jour il y a 2212 jours - Il n'est peut être plus à jour !

Article écrit par Jonathan B.

Jonathan est le co-fondateur de WP Media, startup connue pour être l’auteur de WP Rocket et Imagify. Il est aussi co-organisateur du WordCamp Lyon et Paris.

2 Commentaires

  1. Bonjour ,
    voila j ‘ai un site de sport gatesport , et j’aimerais autoriser les contributeurs a écrire des articles mais comment ? qu’elle plug in ?
    merci

  2. Ya toujours de la bonne astuce chez GeekPress.
    ps : esc_attr() ne sert à rien dans le code.
    esc_attr() signifie « escape attribute » et sert à l’affichage à l’écran. Ici on n’affiche rien et ce n’est pas un attribut HTML.
    Il n’est jamais dangeureux de comparer un $_GET sans escape ;)

37356a96f88c93fc138db53e274f59f3}}