Diije

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.