Après avoir géré un blog à auteurs multiples pendant des années, nous avons constaté que, dans certaines situations, il est important d’organiser les téléversements de médias par utilisateur. D’après notre expérience, plus votre équipe de contributeurs s’agrandit, plus la gestion des médias risque d’être chaotique.
Nous avons rencontré des scénarios dans lesquels les auteurs modifiaient ou supprimaient accidentellement les images de leurs collègues, ce qui avait pour effet d’interrompre les publications. Dans un cas, un clic mal placé a entraîné la suppression d’un visuel clé, ce qui a retardé la publication d’un article important.
Pour éviter cela, vous pouvez restreindre ou organiser les téléversions de médias par les utilisateurs dans WordPress. Cette fonctionnalité n’est pas proposée par défaut, c’est pourquoi nous allons vous montrer notre méthode pour y parvenir.
Pourquoi restreindre l’accès des auteurs/autrices aux téléversements des médias ?
Si vous avez un blog WordPress multi-auteurs, vos auteurs/autrices peuvent téléverser un grand nombre d’images différentes. Il peut donc être difficile pour une auteur/autrice de trouver la bonne image, ou bien elle peut supprimer ou modifier le fichier multimédia d’une autre personne par accident.
Cela peut entraîner toutes sortes de problèmes, notamment une faible productivité, beaucoup de travail supplémentaire pour les admins du site et les éditeurs/éditrices, et un flux de travail éditorial compliqué.
Cet accès illimité peut également poser des problèmes de Confidentialité. Par exemple, si vous travaillez sur l’idée d’un nouveau produit ou d’une nouvelle publication de blog, d’autres auteurs/autrices pourraient voir des images confidentielles dans la médiathèque avant que vous n’en fassiez l’annonce publique.
Si vous avez un site d’adhésion WordPress, les contributeurs/contributrices peuvent même avoir accès à des fichiers multimédias premium via la médiathèque.
Ceci étant dit, voyons comment restreindre qui peut voir les téléversions de médias dans votre zone d’administration WordPress.
Comment organiser les téléversions de médias par les utilisateurs avec WPCode
À l’époque, nous avions trouvé une extension qui permettait d’empêcher les utilisateurs sans droits de publication d’accéder aux fichiers des autres utilisateurs dans la médiathèque de WordPress. Bien que cette extension ait été facile à utiliser, elle n’est plus mise à jour.
En outre, l’extension peut être assez limitée, car vous ne pouvez empêcher que les utilisateurs ne disposant pas de l’autorisation edit_others_posts
(administrateurs du site et éditeurs) d’accéder aux fichiers multimédias d’autres utilisateurs.
Si vous êtes administrateur de site, il se peut que vous souhaitiez empêcher tous les utilisateurs (sauf vous-même) d’accéder aux fichiers multimédias d’autres personnes.
Dans ce cas, vous pouvez ajouter un code personnalisé à votre blog WordPress. Nous allons vous montrer deux extraits de code : l’un qui restreint l’accès aux fichiers multimédias pour les utilisateurs qui ne sont pas administrateurs et l’autre pour les utilisateurs qui ne disposent pas de l’autorisation edit_others_posts.
Souvent, les guides vous demanderont d’ajouter du code personnalisé à votre thème WordPress. Cependant, cela n’est pas recommandé, car de simples erreurs ou fautes de frappe dans votre code peuvent provoquer des erreurs WordPress courantes ou même casser complètement votre site.
C’est pourquoi nous recommandons WPCode.
WPCode est la meilleure extension d’extraits de code utilisée par plus d’un million de sites WordPress. Il facilite l’ajout de code personnalisé dans WordPress sans avoir à modifier le fichier functions.php.
La première chose à faire est d’installer et d’activer l’extension gratuite WPCode. Pour plus de détails, consultez notre guide étape par étape sur l’installation d’une extension WordPress.
Une fois activé, rendez-vous dans la rubrique Extraits de code » Ajouter un extrait.
Vous consulterez cette page pour connaître tous les snippets prêts à l’emploi que vous pouvez ajouter à votre site. Il s’agit notamment d’extraits qui vous permettent de désactiver complètement les commentaires WordPress, de désactiver les pages de pièces jointes aux images, et bien plus encore.
Il vous suffit de survoler la rubrique « Ajouter votre code personnalisé » et de sélectionner « Utiliser un extrait ».
Pour commencer, saisissez un titre pour l’extrait de code personnalisé. Il peut s’agir de n’importe quoi qui vous aide à identifier l’extrait dans le Tableau de bord WordPress.
Ensuite, 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 de WordPress qui ne sont pas administrateurs
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;
}
Ce code vérifie si l’utilisateur actuel n’est pas un administrateur. S’il n’est pas administrateur, il filtre la médiathèque pour n’afficher que les fichiers que l’utilisateur a téléversés lui-même.
Cela signifie que les utilisateurs ordinaires 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 de WordPress qui n’ont pas le droit d’éditer des articles
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;
}
Ce code est un peu plus spécifique. Il vérifie si l’utilisateur actuel est connecté et s’il n’a pas la permission d’activer des extensions ou de modifier les publications d’autres personnes. Si un utilisateur remplit ces conditions, il ne peut voir et gérer que ses propres fichiers multimédias.
Cela permet aux administrateurs et aux éditeurs de voir tous les fichiers, tandis que les auteurs et les contributeurs ne peuvent accéder qu’à leurs propres téléversements.
Ensuite, défilez jusqu’à la section « Insertion ». WPCode peut ajouter votre module à différents Emplacements, comme après chaque publication, sur l’interface publique uniquement, ou sur l’administration uniquement.
Pour utiliser le code PHP personnalisé sur l’ensemble de votre site WordPress, cliquez sur « Insertion automatique » s’il n’est pas déjà sélectionné. Ouvrez ensuite le menu déroulant « Emplacement » et choisissez « Exécuter partout ».
Ensuite, vous pouvez défiler jusqu’en haut de l’écran et cliquer sur le permutateur « Inactif » pour qu’il se modifie en « Actif ».
Enfin, cliquez sur « Enregistrer l’extrait » pour mettre en direct l’extrait PHP.
Désormais, les utilisateurs/utilisatrices auront uniquement accès aux fichiers qu’ils téléversent dans la médiathèque de WordPress.
En savoir plus sur la gestion des fichiers WordPress
Outre la restriction des téléversements de médias dans WordPress, vous pouvez également consulter les guides ci-dessous pour mieux gérer vos fichiers :
- Comment renommer les images et les fichiers multimédias dans WordPress
- Les meilleures extensions Dropbox pour WordPress (sélection 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 modifier l’emplacement par défaut du téléversement des mé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 nos choix d’experts des meilleures extensions de slider WordPress et notre guide sur la façon de charger facilement des images paresseuses dans WordPress.
Si vous avez aimé cet article, veuillez alors vous abonner à notre chaîne YouTube pour obtenir des tutoriels vidéo sur WordPress. Vous pouvez également nous trouver sur Twitter et Facebook.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Joshua Owolabi
I really enjoy all your tutorials kudos to you.
Although I am unable to use to build something due to lack of resources but you are WELDONE
WPBeginner Support
Glad our tutorials are helpful
Administrateur
Teddu
I would like users to be able to upload content, and once its approved go onto a new page. the user could then edit it once it is there.
Think, similar how airbnb let users upload photos and descriptions of their holiday homes, and it appears in a page.
do you know a plug in for this functionality?
WPBeginner Staff
It is certainly possible but can potentially open up your site to spam, malicious hack attempts. Please see out article on how to allow users to submit posts in WordPress. You can allow users to upload media without registration.
fredtgorski
The one thing I would really(!) love to see on media library would be the ability to search media per post and/or date of upload. Every time I need to reuse an image I uploaded for a very old post, it is painfull to find it again. Sometimes I simply give up and reupload it…
agsm
sir , i want to design a wordpress page where user will upload some documents with following feilds (name,e-mail,title,summary and file upload) after submit , it should appear in dashboard and when admin approve it should be show on page (all listing of upload details which has been approved by admin ) , its possible,
thanks in advance!!!
Michel
https://wordpress.org/plugins/wp-user-frontend/
Jan
Do you also have a solution to enable visitors (non-logged-in users) to upload content?
Tony Franco
Very nice! Thank you!!