Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Coppa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Come limitare l’accesso alla libreria multimediale ai caricamenti dell’utente in WordPress

Per impostazione predefinita, WordPress consente agli autori di vedere tutte le immagini presenti nella libreria multimediale del sito. Questo potrebbe essere un problema se si invitano molti autori ospiti. In questo articolo vi mostreremo come limitare l’accesso alla mediateca di WordPress ai soli upload degli utenti.

Restrict WordPress media library access to user's own uploads

Perché limitare l’accesso alla libreria multimediale ai caricamenti dell’utente?

WordPress consente agli autori di vedere tutti i file della libreria multimediale. Possono anche vedere le immagini caricate da un amministratore, da un editore o da altri autori.

Per saperne di più, consultate il nostro articolo sui ruoli e i permessi degli utenti di WordPress.

Supponiamo che stiate creando un nuovo post per annunciare un prodotto o un’offerta imminente. Gli autori e gli ospiti del vostro sito web potranno vedere le immagini caricate per l’articolo nella libreria multimediale.

Le immagini caricate saranno visibili anche nel popup “Aggiungi media” che gli utenti vedono quando aggiungono immagini ai loro articoli.

Per molti siti web, questo potrebbe non essere un problema. Tuttavia, se gestite un sito web con più autori, potreste voler modificare questo aspetto.

Vediamo come limitare facilmente l’accesso alla mediateca ai soli upload degli utenti.

Metodo 1: Limitare l’accesso alla libreria multimediale con un plugin

Questo metodo è più semplice ed è consigliato a tutti gli utenti.

La prima cosa da fare è installare e attivare il plugin Restrict Media Library Access. Per maggiori dettagli, consultate la nostra guida passo passo su come installare un plugin di WordPress.

Questo plugin funziona subito e non ci sono impostazioni da configurare.

All’attivazione, filtra la query della libreria multimediale per vedere se l’utente corrente è un amministratore o un editor. Se il ruolo dell’utente non corrisponde a nessuno dei due, verranno mostrati solo i caricamenti dell’utente stesso.

Gli utenti con il ruolo di amministratore o di editor potranno vedere tutti i media caricati come di consueto.

Metodo 2: Limitare l’accesso alla libreria multimediale manualmente

Il primo metodo funziona per la maggior parte dei siti web, in quanto limita l’accesso alla libreria multimediale e consente solo all’amministratore e all’editor di visualizzare tutti i media caricati.

Tuttavia, se si desidera aggiungere un ruolo utente personalizzato o semplicemente non si vuole utilizzare un plugin, si può provare questo metodo. Utilizza lo stesso codice usato dal plugin, ma sarà possibile modificarlo per soddisfare le proprie esigenze.

Questo metodo richiede l’aggiunta di codice ai file di WordPress. Se non l’avete mai fatto prima, date un’occhiata alla nostra guida su come copiare e incollare il codice in WordPress.

Dovrete aggiungere il seguente codice al file functions.php di WordPress o a un plugin specifico del sito.

// 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;
} 

Questo codice utilizza la funzione current_user_can per verificare se l’utente ha la capacità di attivare plugin o modificare i post di altri utenti. In caso contrario, modifica la query utilizzata per visualizzare i file multimediali e la limita all’ID dell’utente.

Speriamo che questo articolo vi abbia aiutato a capire come limitare l’accesso alla mediateca di WordPress ai soli upload dell’utente. Potreste anche voler limitare gli autori ai propri post nell’area di amministrazione di WordPress.

Se questo articolo vi è piaciuto, iscrivetevi al nostro canale YouTube per le esercitazioni video su WordPress. Potete trovarci anche su Twitter e Facebook.

Divulgazione: I nostri contenuti sono sostenuti dai lettori. Ciò significa che se cliccate su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come WPBeginner è finanziato , perché è importante e come puoi sostenerci. Ecco il nostro processo editoriale .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Il kit di strumenti WordPress definitivo

Ottenete l'accesso gratuito al nostro kit di strumenti - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Reader Interactions

13 commentiLascia una risposta

  1. 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 :)

      Admin

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

      Admin

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

      Admin

  4. Alvaro Gomez

    Thank you for mentioning my plugin :)

    • WPBeginner Support

      Thank you for creating the plugin and placing it on the WordPress.org repo :)

      Admin

  5. Daniel

    Am looking for away i can make user upload directly from their pc instead of going to media page

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

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

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

Lascia una risposta

Grazie per aver scelto di lasciare un commento. Tenga presente che tutti i commenti sono moderati in base alle nostre politica dei commenti e il suo indirizzo e-mail NON sarà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avremo una conversazione personale e significativa.