Autoriser l’upload des medias pour les contributeurs
WordPress interdit aux contributeurs l’upload de médias. Et pourtant, une astuce toute simple permet d’ajouter cette fonctionnalité aux contributeurs de votre site.
Un contributeur peut uniquement ajouter, éditer et supprimer ses propres articles qui seront soumis à la validation d’un administrateur ou d’un éditeur. De plus, il lui est impossible de télécharger des médias.
C’est un détail handicapant puisque vos contributeurs ne peuvent donc pas fournir des articles composés d’images alors que ces derniers apportent en général une plus value non négligeable.
Heureusement pour nous, l’équipe de WordPress a très bien conçu son CMS puisqu’il est possible de modifier les droits d’un rôle.
L’astuce ci-dessous se place dans le fichier functions.php
présent à la racine de votre thème.
[pastacode lang=”php” message=”” highlight=”” provider=”manual”]
if ( current_user_can('contributor') && !current_user_can('upload_files') )
add_action('admin_init', 'allow_upload_contributors');
function allow_upload_contributors() {
$contributor = get_role('contributor');
$contributor->add_cap('upload_files');
}
[/pastacode]
Avant d’exécuter la fonction qui ajoutera la capacité de téléchargement, il convient de vérifier si le membre a le rôle de contributeur et s’il n’a pas le droit de télécharger des médias. Une fois la vérification effectuée, il faut ajouter la capacité à l’ensemble des contributeurs.
Grâce à cette astuce, le menu Envoyer/Insérer apparaît pour l’intégralité de vos contributeurs.
J’ai profité de cette astuce pour en faire un plugin WordPress disponible à cette adresse : Upload Media For Contributors.
Source : Diije
13 Commentaires
Bonsoir
Merci pour l’astuce
Existe t il une astuce du genre pour que les contributeurs puissent ajouter des catégories ?
@RYUK : Oui c’est possible, je rédige l’astuce à sujet pour lundi ;)
Oh, merci ^^
Merci pour ton aide, j’ai installé ton plugin sur un futur projet de site de communiqué de presse.
Je n’hésiterai pas à te faire un feedback dès la mise en place. Et pourquoi pas un petit article? Si ça te dit??? Avec un beau lien vers ton plugin. Contacte moi http://www.smo4seo.com
Merci pour ce bout de code bien utile.
Il m’a permis d’éviter d’installer un plugin.
Petite question en passant, existe il un moyen de laisser les contributeurs uploader des photos sans qu’ils aient accès à la bibliothèque médias déjà existants sur le site ? En gros peut-on laisser la main à un contributeur uniquement sur ses photos et pas sur toutes les photos du site ? Je sais déjà qu’ils n’ont pas les droits pour les modifier, mais je voudrais en plus leur interdire de voir et d’utiliser les photos des autres contributeurs et de la bibliothèque média en général.
Merci.
@Julien : Très bonne question, il faudrait regarder dans le code avant de voir s’il est possible de modifier la requête qui affiche les images en fonction du rôle des membres.
Bonjour,
j’ai testé l’ajout de la fonction et super ça marche. Je l’ai retiré ensuite du fichier functions.php de mon thème et par contre la fonction est toujours disponible en tant que contributeur…??
Une idée ?
@yoann : Il faut supprimer la capacité. Cela peut se faire avec le code ci-dessous :
je cherche un plugin qui permet aux internautes enregistrés de déposer un fichier sur une page . j’ai pas trouvé un plugin qui assure ça , j’ai trouvé ceux qui permettent seulement l’upload du fichier dans la bibiliothèque du site sans affichage .
Merci bien pour cette astuce très utile pour les sites de communiqués de presse , vous m’avez fait gagner un temps précieux …
Bjr,
mais a quelle ligne se met ce code ?
Pour répondre à la question de Julien, j’ai trouvé le plugin « View Own Posts Media Only » qui permet de limiter l’accès aux images.