Par défaut, WordPress permet aux auteurs/autrices de voir toutes les images de la médiathèque de votre site. Cela pourrait être problématique si vous invitez beaucoup d’auteurs/autrices invités. Dans cet article, nous allons vous afficher comment restreindre l’accès à la médiathèque de WordPress aux seuls outils téléversés par les comptes.
Pourquoi restreindre l’accès à la Bibliothèque Média aux téléversements des utilisateurs/utilisatrices ?
WordPress permet aux auteurs/autrices de voir tous les fichiers de la médiathèque. Ils peuvent également voir les images téléversées par un administrateur/administratrice, un éditeur ou d’autres auteurs/autrices.
Pour en savoir plus, consultez notre article sur les rôles et droits des utilisateurs/utilisatrices de WordPress.
Disons que vous créez une nouvelle publication pour annoncer un produit ou une affaire à venir. Les auteurs/autrices et les auteurs/autrices invités sur votre site pourront voir les images que vous téléversez dans cet article dans la médiathèque.
Vos téléversements seront également visibles dans la fenêtre surgissante « Ajouter des médias » que les utilisateurs/utilisatrices voient lorsqu’ils ajoutent des images à leurs propres articles.
Pour de nombreux sites, cela n’est pas très important. Toutefois, si vous gérez un site à auteurs/autrices multiples, vous voudrez peut-être modifier cela.
Voyons comment restreindre facilement l’accès à la médiathèque aux seuls outils téléversés par les utilisateurs/utilisatrices.
Méthode 1 : Restreindre l’accès à la médiathèque à l’aide d’une extension
Cette méthode est plus simple et est recommandée pour tous les utilisateurs/utilisatrices.
La première chose à faire est d’installer et d’activer l’extension Restreindre l’accès à la médi athèque. Pour plus de détails, consultez notre guide étape par étape sur l’installation d’une extension WordPress.
Cette extension fonctionne d’emblée et vous n’avez aucun réglage à effectuer.
Dès qu’il est activé, il filtre la requête de la médiathèque pour voir si l’utilisateur actuel est un administrateur/administratrices ou des éditeurs/éditrices. Si le rôle de l’utilisateur ne correspond pas à l’un d’entre eux, il affichera uniquement les outils téléversés par l’utilisateur lui-même.
Les utilisateurs/utilisatrices ayant le rôle d’administrateur/administratrice ou d’éditeur/éditrice pourront voir tous les outils téléversés comme d’habitude.
Méthode 2 : Restreindre manuellement l’accès à la médiathèque
La première méthode convient à la plupart des sites, car elle limite l’accès à la Bibliothèque des médias et permet uniquement à l’administrateur/administratrice et aux éditeurs/éditrices de voir tous les téléversements de médias.
Cependant, si vous souhaitez ajouter un rôle du rôle personnalisé de l’utilisateur ou tout simplement ne pas utiliser une extension, alors vous pouvez essayer cette méthode à la place. Elle utilise le même code que celui utilisé par l’extension, mais vous pourrez le modifier pour répondre à vos besoins.
Cette méthode nécessite l’ajout d’un code dans les fichiers de WordPress. Si vous n’avez jamais fait cela auparavant, jetez un œil à notre guide sur la façon de copier et coller du code dans WordPress.
Vous devez ajouter le code suivant au fichier functions.php de WordPress ou à une extension spécifique à votre site.
// Limit media library access add_filter( 'ajax_query_attachments_args', 'wpb_show_current_user_attachments' ); function wpb_show_current_user_attachments( $query ) { $user_id = get_current_user_id(); if ( $user_id && !current_user_can('activate_plugins') && !current_user_can('edit_others_posts ') ) { $query['author'] = $user_id; } return $query; }
Ce code utilise la fonction current_user_can pour vérifier si l’utilisateur a la permissions d’activer des extensions ou de modifier les publications d’autres utilisateurs. Si ce n’est pas le cas, il modifie la requête utilisée pour afficher les fichiers multimédias et la limite à l’ID de l’utilisateur.
Nous espérons que cet article vous a aidé à apprendre comment restreindre l’accès à la Bibliothèque Média de WordPress aux seuls outils téléversés par le compte de l’utilisateur. Vous pouvez également limiter les auteurs/autrices à leurs propres publications dans la zone d’administration de WordPress.
Si vous avez aimé cet article, veuillez vous abonner à notre chaîne YouTube pour obtenir des tutoriels vidéo sur WordPress. Vous pouvez également nous trouver sur Twitter et Facebook.
Noel Williams
Anyone looking for an update might want to consider the following which takes care of the list and grid issues
// For list view
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);
}
}
}
// For grid view
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;
}
WPBeginner Support
Thank you for sharing this
Administrateur
Bruno
The plugin works, but If you switch to ‘upload.php?mode=list’ it’s possible to see all medias again. It works only on the mode=grid
WPBeginner Support
Thank you for sharing this information
Administrateur
nathan
Amazing ! Its working !
But if using wordpress app installed from mobile, all users still can access whole media library. Any solutions?
Your help is much appreciated !
WPBeginner Support
We do not have a solution for the app at the moment but we will certainly keep an eye out.
Administrateur
Alvaro Gomez
Thank you for mentioning my plugin
WPBeginner Support
Thank you for creating the plugin and placing it on the WordPress.org repo
Administrateur
Daniel
Am looking for away i can make user upload directly from their pc instead of going to media page
kim
This may not be the post I need to be asking this on but….
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?
Teacher-username1- media (only see username1 media files)
Teacher-username2-media (only see username2 media files)
Hugh
Instead of:
!current_user_can(‘activate_plugins’)
&&
!current_user_can(‘edit_others_posts’)
USE:
!current_user_can(‘administrator’)
Because if for example you use the ‘User Role Editor’ plugin, you might want to allow the current user to be able to activate plugins AND/OR edit others posts.
Just a thought, works for me
Thanks for the post!
Peter
Nice post.
And is there a way to disallow uploading files directly to the media library and force users (except admins) to use Add Media button within post/page editor?
WPBeginner Support
Hi Peter,
Yes, there is. You can use Adminimize plugin to hide the Media link from your WordPress admin bar for all user roles except administrators.
Administrateur