Tutoriels WordPress de confiance, quand vous en avez le plus besoin.
Guide du débutant pour WordPress
WPB Cup
25 millions+
Sites web utilisant nos plugins
16+
Années d'expérience WordPress
3000+
Tutoriels WordPress par des experts

Comment restreindre l'accès à la médiathèque aux propres téléchargements de l'utilisateur dans WordPress

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.

Comment restreindre l'accès à la médiathèque aux propres téléchargements de l'utilisateur dans WordPress

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.

Comment ajouter des extraits de code PHP personnalisés à votre site à l'aide de WPCode

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 ».

Ajouter un extrait de code personnalisé à WordPress

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.’

Restreindre l'accès à la médiathèque à l'aide de WPCode

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 ».

Exécuter du code PHP personnalisé sur votre site Web à l'aide de WPCode

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.

Comment restreindre l'accès aux fichiers multimédias à l'aide de code

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 :

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.

Avis : Notre contenu est financé par nos lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons percevoir une commission. Voir comment WPBeginner est financé, pourquoi c'est important et comment vous pouvez nous soutenir. Voici notre processus éditorial.

La boîte à outils WordPress ultime

Accédez GRATUITEMENT à notre boîte à outils - une collection de produits et de ressources liés à WordPress que tout professionnel devrait posséder !

Interactions des lecteurs

13 CommentsLeave a Reply

  1. 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;
    }

  2. 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

  3. 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 !

    • Nous n'avons pas de solution pour l'application pour le moment, mais nous y serons certainement attentifs.

      Admin

  4. 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

  5. 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)

  6. 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 !

  7. 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 ?

Laisser un commentaire

Merci d'avoir choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre politique de commentaires, et votre adresse e-mail ne sera PAS publiée. Veuillez NE PAS utiliser de mots-clés dans le champ du nom. Ayons une conversation personnelle et significative.