Autoriser l’upload de medias par les contributeurs

Le rôle Contributeur est très utile sur les sites multi-utilisateurs puisque très restrictif. En effet, un contributeur ne peut qu’ajouter un article, l’éditer ou le supprimer, puis le soumettre à la relecture. Les articles ainsi proposés peuvent donc être relus par un éditeur ou un administrateur, qui pourra alors choisir de les publier ou non.

Cela dit, le rôle de contributeur est parfois un peu trop limité : par défaut, WordPress interdit aux contributeurs l’upload de médias via le fameux menu Envoyer/Insérer :

La fonction Envoyer/Insérer de WordPress

Pourtant, cette fonction est parfois indispensable. Plutôt que de passer vos contributeurs en auteurs, je vous propose de rajouter les quelques lignes suivantes au fichier functions.php de votre thème :

if ( current_user_can('contributor') && !current_user_can('upload_files') )
	add_action('admin_init', 'dfr_upload_contributeurs');

function dfr_upload_contributeurs() {
	$contributor = get_role('contributor');
	$contributor->add_cap('upload_files');
}

On commence par vérifier que l’utilisateur actuel est contributeur, et qu’il ne peut pas uploader de média (pour éviter d’exécuter la fonction pour rien). Si c’est le cas, on ajoute à l’aide de dfr_upload_contributeurs() la capacité upload-files au rôle Contributeur. De cette manière, les contributeurs verront eux aussi apparaître le menu Envoyer/Insérer sur la page d’ajout et d’édition d’articles.

Cet article a été publié dans WordPress par . Mettez-le en favori avec son permalien.
  • Très bon hack.

    Le seul bémol, c’est qu’il faut faire attention avec celui-ci et être sûr de la fiabilité des contributeurs, car l’upload de média est un gouffre de sécurité pour les pirates…

  • Oui, il est certain que ça n’est pas à faire sur n’importe quel site 🙂
    J’ai mis ce hack en place sur un site dont je connais très bien les contributeurs puisque ce sont mes collègues de travail. S’ils font des bêtises, je peux donc les attaquer à coups de Nerf 😀

  • seosphere

    Hello,

    Il me semble que ce hack est obsolète, y en aurai pas un plus récent SVP ?

  • Bonjour,

    Ca fonctionne parfaitement chez moi.
    Etes-vous sûr de l’avoir correctement implémenté ?
    Une autre modification entre peut-être en conflit avec ce hack.