Gérer un site WordPress multi-auteurs est passionnant jusqu'à ce que la médiathèque devienne un champ de foire. Nous sommes passés par là, et nous savons à quel point il est frustrant qu'un auteur supprime accidentellement les images d'un autre, provoquant le chaos juste avant un lancement important.
Empêcher cela est plus facile que vous ne le pensez. Vous pouvez restreindre quels auteurs voient quels fichiers multimédias, ramenant ainsi l'ordre dans votre médiathèque.
Bien que WordPress n'ait pas de paramètre intégré pour cela, nous allons partager la méthode simple que nous utilisons dans nos propres projets. Elle vous aidera à garder vos fichiers multimédias organisés et sécurisés.

Pourquoi restreindre l'accès des auteurs aux téléchargements de médias ?
Si vous avez un blog WordPress multi-auteurs, vos auteurs pourraient télécharger de nombreuses images différentes. Cela peut rendre difficile pour un auteur de trouver la bonne image, ou il pourrait supprimer ou modifier accidentellement le fichier multimédia d'une autre personne.
Cela peut causer toutes sortes de problèmes, notamment une faible productivité, beaucoup de travail supplémentaire pour les administrateurs de site et les éditeurs, et un flux de travail éditorial compliqué.
Cet accès illimité peut également poser un problème de confidentialité. Par exemple, si vous travaillez sur un nouveau produit ou une idée d'article de blog, d'autres auteurs pourraient voir des images confidentielles dans la médiathèque avant que vous ne fassiez une annonce publique.
Si vous avez un site d'adhésion WordPress, les contributeurs pourront même accéder à des fichiers multimédias premium via la médiathèque.
Cela dit, examinons comment restreindre qui peut voir les téléchargements de médias dans votre zone d'administration WordPress.
Comment organiser les téléchargements de médias par utilisateur avec WPCode
Bien que certains plugins aient offert cette fonctionnalité par le passé, la manière la plus fiable et la plus légère d'organiser les téléchargements d'utilisateurs consiste à ajouter un simple extrait de code. Ne vous inquiétez pas, c'est plus facile que cela n'y paraît !
Nous allons utiliser le plugin gratuit WPCode pour cela. C'est le moyen le plus sûr et le plus simple d'ajouter du code personnalisé à votre site WordPress sans modifier les fichiers de votre thème.
Nous vous montrerons deux extraits de code que vous pouvez utiliser. Le premier extrait restreint l'accès à la médiathèque pour tous les utilisateurs non administrateurs, et le second restreint l'accès pour des rôles d'utilisateurs spécifiques comme les Auteurs et les Contributeurs.
Souvent, les guides vous demanderont d'ajouter du code personnalisé à votre thème WordPress. Cependant, ce n'est pas recommandé, car des erreurs simples ou des fautes de frappe dans votre code peuvent causer des erreurs WordPress courantes ou même casser complètement votre site.
C'est pourquoi nous recommandons WPCode.
WPCode est le meilleur plugin d'extraits de code utilisé par plus d'un million de sites WordPress. Il est facile d d'ajouter du code personnalisé dans WordPress sans avoir à modifier le fichier functions.php.
Astuce d'expert : Chez WPBeginner, nous utilisons WPCode pour gérer toutes les fonctions personnalisées sur notre portefeuille de sites Web. Il permet à notre équipe de développement d'ajouter et de dépanner du code en toute sécurité sans jamais toucher aux fichiers du thème principal, ce qui permet de gagner beaucoup de temps et d'éviter des erreurs coûteuses.
La première chose à faire est d'installer et d'activer le plugin gratuit WPCode. Pour plus de détails, consultez notre guide étape par étape sur comment installer un plugin WordPress.
Après l'activation, rendez-vous sur Extraits de code » Ajouter un extrait.

Ici, vous verrez tous les extraits prêts à l'emploi que vous pouvez ajouter à votre site web. Cela inclut des extraits qui vous permettent de désactiver complètement les commentaires WordPress, désactiver les pages de pièces jointes d'images, et plus encore.
Survolez simplement votre souris sur « Ajouter votre code personnalisé », puis sélectionnez « Utiliser l'extrait ».

Pour commencer, tapez un titre pour l'extrait de code personnalisé. Cela peut être n'importe quoi qui vous aide à identifier l'extrait dans le tableau de bord WordPress.
Après cela, ouvrez le menu déroulant ‘Type de code’ et sélectionnez ‘Extrait PHP.’

Dans la zone « Aperçu du code », vous pouvez coller l'un des extraits de code suivants :
Option 1 : Restreindre l'accès aux fichiers multimédias pour les utilisateurs WordPress non administrateurs
Ce code vérifie si l'utilisateur actuel n'est pas un administrateur. S'il n'est pas un administrateur, il filtre la médiathèque pour n'afficher que les fichiers que l'utilisateur a téléchargés lui-même.
add_filter( 'ajax_query_attachments_args', 'user_show_attachments' );
function user_show_attachments( $query ) {
$user_id = get_current_user_id();
// Check if the current user is not an administrator
if ( $user_id && !current_user_can('administrator') ) {
$query['author'] = $user_id;
}
return $query;
}
Cela signifie que les utilisateurs réguliers ne peuvent voir et gérer que leurs propres fichiers multimédias, tandis que les administrateurs peuvent toujours voir et gérer tous les fichiers.
Option 2 : Restreindre l'accès aux fichiers multimédias pour les utilisateurs WordPress sans permissions d'édition de publication
Ce code est parfait si vous souhaitez que les éditeurs et les administrateurs gèrent tous les fichiers multimédias tout en restreignant les auteurs et les contributeurs à leurs propres téléchargements.
add_filter( 'ajax_query_attachments_args', 'user_show_attachments' );
function user_show_attachments( $query ) {
$user_id = get_current_user_id();
// Checks if the current user is logged in (i.e., $user_id is not 0) and does not have the capabilities to activate plugins or edit others' posts.
if ( $user_id && !current_user_can('activate_plugins') && !current_user_can('edit_others_posts
') ) {
$query['author'] = $user_id;
}
return $query;
}
Il fonctionne en vérifiant si un utilisateur a la permission edit_others_posts, qui est une capacité que les éditeurs ont par défaut, mais pas les auteurs.
Ensuite, faites simplement défiler jusqu'à la section « Insertion ». WPCode peut ajouter votre code à différents emplacements, tels qu'après chaque publication, uniquement sur le front-end, ou uniquement dans l'administration.
Pour utiliser le code PHP personnalisé sur l'ensemble de votre site web WordPress, cliquez sur « Insertion automatique » s'il n'est pas déjà sélectionné. Ensuite, ouvrez le menu déroulant « Emplacement » et choisissez « Exécuter partout ».

Après cela, vous êtes prêt à faire défiler jusqu'en haut de l'écran et à cliquer sur le bouton « Inactif » pour qu'il devienne « Actif ».
Enfin, cliquez sur ‘Enregistrer l'extrait’ pour rendre l'extrait PHP actif.

Désormais, les utilisateurs n'auront accès qu'aux fichiers qu'ils téléchargent dans la médiathèque WordPress.
Foire aux questions
Voici quelques-unes des questions les plus fréquemment posées concernant l'organisation des téléchargements de médias dans WordPress.
Est-il sûr d'ajouter du code personnalisé à mon site WordPress ?
Ajouter du code directement dans le fichier functions.php de votre thème peut être risqué. Une petite faute de frappe ou une erreur pourrait causer des problèmes, voire rendre votre site inaccessible.
C'est pourquoi nous recommandons vivement d'utiliser le plugin WPCode. Il crée une couche de sécurité pour l'ajout de snippets, vous n'avez donc pas à vous soucier de casser quoi que ce soit.
Cela affectera-t-il les performances de mon site web ?
Pas du tout. Le snippet de code que nous avons fourni est très léger et fonctionne efficacement.
Il ajoute simplement une vérification lorsque l'utilisateur accède à la médiathèque, donc cela ne ralentira pas votre site web pour vos visiteurs.
Puis-je restreindre l'accès aux médias pour des rôles d'utilisateurs spécifiques ?
Oui, absolument ! Le code peut être facilement personnalisé pour cibler un rôle d'utilisateur spécifique. Par exemple, si vous vouliez que cette restriction s'applique uniquement aux utilisateurs ayant le rôle « Auteur », vous pourriez utiliser ce snippet à la place :
add_filter( 'ajax_query_attachments_args', 'author_only_show_attachments' );
function author_only_show_attachments( $query ) {
$user = wp_get_current_user();
// Check if the current user has the 'author' role
if ( in_array( 'author', (array) $user->roles ) ) {
$query['author'] = $user->ID;
}
return $query;
}
Apprenez d'autres façons de gérer les fichiers WordPress
En plus de restreindre les téléversements de médias dans WordPress, vous pourriez également consulter les guides ci-dessous pour mieux gérer vos fichiers :
- Comment renommer les images et les fichiers multimédias dans WordPress
- Meilleurs plugins Dropbox pour WordPress (sélections d'experts)
- Comment créer des tailles d'images supplémentaires dans WordPress
- Comment imposer des noms de fichiers d'images propres dans WordPress (méthode facile)
- Comment nettoyer votre médiathèque WordPress
- Comment changer l'emplacement par défaut des téléchargements multimédias dans WordPress
Nous espérons que cet article vous a aidé à mieux organiser les téléversements de médias par les utilisateurs sur votre site WordPress. Ensuite, vous pouvez consulter notre sélection d'experts des meilleurs plugins de slider WordPress et notre guide sur comment charger facilement les images en différé dans WordPress.
Si cet article vous a plu, abonnez-vous à notre chaîne YouTube pour des tutoriels vidéo WordPress. Vous pouvez également nous retrouver sur Twitter et Facebook.

Noel Williams
Toute personne cherchant une mise à jour pourrait vouloir considérer ce qui suit, qui résout les problèmes de liste et de grille
// Pour la vue liste
add_action( ‘pre_get_posts’, ‘wpb_show_current_user_attachments_list_view’ );
function wpb_show_current_user_attachments_list_view( $query ) {
if ( is_admin() && $query->is_main_query() && $query->get(‘post_type’) === ‘attachment’ ) {
$user_id = get_current_user_id();
if ( $user_id && !current_user_can(‘administrator’) ) {
$query->set(‘author’, $user_id);
}
}
}
// Pour la vue grille
add_filter( ‘ajax_query_attachments_args’, ‘wpb_show_current_user_attachments_grid_view’ );
function wpb_show_current_user_attachments_grid_view( $query ) {
$user_id = get_current_user_id();
if ( $user_id && !current_user_can(‘administrator’) ) {
$query[‘author’] = $user_id;
}
return $query;
}
Support WPBeginner
Thank you for sharing this
Admin
Bruno
Le plugin fonctionne, mais si vous passez à ‘upload.php?mode=list’, il est possible de voir à nouveau tous les médias. Cela ne fonctionne qu'en mode=grille
Support WPBeginner
Thank you for sharing this information
Admin
nathan
Incroyable ! Ça marche !
Mais si j'utilise l'application WordPress installée depuis mobile, tous les utilisateurs peuvent toujours accéder à toute la médiathèque. Des solutions ?
Votre aide est grandement appréciée !
Support WPBeginner
Nous n'avons pas de solution pour l'application pour le moment, mais nous y serons certainement attentifs.
Admin
Alvaro Gomez
Thank you for mentioning my plugin
Support WPBeginner
Thank you for creating the plugin and placing it on the WordPress.org repo
Admin
Daniel
Je cherche un moyen de faire en sorte que l'utilisateur télécharge directement depuis son PC au lieu d'aller sur la page média
kim
Ce n'est peut-être pas le post sur lequel je devrais poser cette question, mais…
What if you create a role for say, teacher. Is there a way or plugin that would filter so that one teacher can’t see another teacher media files? If that makes sense?
Enseignant-nomdutilisateur1- médias (voir uniquement les fichiers médias de nomdutilisateur1)
Enseignant-nomdutilisateur2-médias (voir uniquement les fichiers médias de nomdutilisateur2)
Hugh
Au lieu de :
!current_user_can(‘activate_plugins’)
&&
!current_user_can(‘edit_others_posts’)
UTILISER :
!current_user_can(‘administrator’)
Car si par exemple vous utilisez le plugin ‘User Role Editor’, vous pourriez vouloir autoriser l'utilisateur actuel à pouvoir activer des plugins ET/OU modifier les publications des autres.
Just a thought, works for me
Merci pour la publication !
Peter
Beau post.
Et y a-t-il un moyen de refuser le téléchargement de fichiers directement dans la médiathèque et de forcer les utilisateurs (sauf les administrateurs) à utiliser le bouton Ajouter un média dans l'éditeur de post/page ?
Support WPBeginner
Salut Peter,
Oui, il y en a un. Vous pouvez utiliser le plugin Adminimize pour masquer le lien Média de votre barre d'administration WordPress pour tous les rôles d'utilisateurs sauf les administrateurs.
Admin