Tutorial WordPress affidabili, quando ne hai più bisogno.
Guida per principianti a WordPress
WPB Cup
25 Milioni+
Siti web che utilizzano i nostri plugin
16+
Anni di esperienza con WordPress
3000+
Tutorial WordPress di esperti

Come limitare l'accesso alla Libreria multimediale ai caricamenti dell'utente in WordPress

Gestire un sito WordPress multi-autore è entusiasmante finché la libreria multimediale non diventa un caos. Ci siamo passati e sappiamo quanto sia frustrante quando un autore elimina accidentalmente le immagini di un altro, causando il caos poco prima di un grande lancio.

Prevenire ciò è più facile di quanto pensi. Puoi limitare quali autori vedono quali file multimediali, riportando l'ordine nella tua libreria.

Sebbene WordPress non disponga di un'impostazione integrata per questo, condivideremo il metodo semplice che utilizziamo nei nostri progetti. Ti aiuterà a mantenere i tuoi file multimediali organizzati e sicuri.

Come limitare l'accesso alla Libreria multimediale ai caricamenti dell'utente in WordPress

Perché limitare l'accesso degli autori ai caricamenti multimediali?

Se hai un blog WordPress multi-autore, i tuoi autori potrebbero caricare molte immagini diverse. Questo può rendere difficile per un autore trovare l'immagine giusta, oppure potrebbero eliminare o modificare accidentalmente il file multimediale di un'altra persona.

Ciò può causare tutti i tipi di problemi, tra cui scarsa produttività, molto lavoro extra per amministratori e redattori del sito e un flusso di lavoro editoriale complicato.

Questo accesso illimitato può anche essere una preoccupazione per la privacy. Ad esempio, se stai lavorando a un nuovo prodotto o a un'idea per un post del blog, altri autori potrebbero vedere immagini riservate nella libreria multimediale prima che tu faccia un annuncio pubblico.

Se hai un sito di appartenenza WordPress, i collaboratori potrebbero persino essere in grado di accedere a file multimediali premium tramite la libreria multimediale.

Detto questo, diamo un'occhiata a come limitare chi può vedere i caricamenti multimediali all'interno della tua area di amministrazione di WordPress.

Come organizzare i caricamenti multimediali per utente con WPCode

Mentre alcuni plugin hanno offerto questa funzionalità in passato, il modo più affidabile e leggero per organizzare i caricamenti degli utenti è aggiungere un semplice snippet di codice. Non preoccuparti, è più facile di quanto sembri!

Utilizzeremo il plugin gratuito WPCode per fare questo. È il modo più sicuro e semplice per aggiungere codice personalizzato al tuo sito WordPress senza modificare i file del tuo tema.

Ti mostreremo due snippet di codice che puoi utilizzare. Il primo snippet limita l'accesso alla libreria multimediale per tutti gli utenti non amministratori, mentre il secondo limita l'accesso per ruoli utente specifici come Autori e Collaboratori.

Spesso, le guide ti chiederanno di aggiungere codice personalizzato al tuo tema WordPress. Tuttavia, questo non è raccomandato, poiché semplici errori o refusi nel tuo codice possono causare errori comuni di WordPress o persino bloccare completamente il tuo sito.

Ecco perché raccomandiamo WPCode.

WPCode è il miglior plugin per snippet di codice utilizzato da oltre 1 milione di siti web WordPress. Rende facile aggiungere codice personalizzato in WordPress senza dover modificare il file functions.php.

Suggerimento dell'esperto: Qui a WPBeginner, utilizziamo WPCode per gestire tutte le funzioni personalizzate sul nostro portafoglio di siti web. Permette al nostro team di sviluppo di aggiungere e risolvere problemi di codice in modo sicuro senza mai toccare i file del tema principale, il che fa risparmiare molto tempo e previene errori costosi.

La prima cosa da fare è installare e attivare il plugin gratuito WPCode. Per maggiori dettagli, consulta la nostra guida passo passo su come installare un plugin WordPress.

Dopo l'attivazione, vai su Snippet di codice » Aggiungi snippet.

Come aggiungere snippet PHP personalizzati al tuo sito utilizzando WPCode

Qui vedrai tutti gli snippet pronti all'uso che puoi aggiungere al tuo sito web. Questi includono snippet che ti permettono di disabilitare completamente i commenti di WordPress, disattivare le pagine di allegato immagine e altro ancora.

Passa semplicemente il mouse su 'Aggiungi il tuo codice personalizzato' e poi seleziona 'Usa snippet'.

Aggiungere codice personalizzato a WordPress

Per iniziare, digita un titolo per lo snippet di codice personalizzato. Può essere qualsiasi cosa che ti aiuti a identificare lo snippet nella dashboard di WordPress.

Successivamente, apri il menu a discesa 'Tipo di codice' e seleziona 'Snippet PHP'.

Limitare l'accesso alla libreria multimediale utilizzando WPCode

Nell'area 'Anteprima codice', puoi incollare uno dei seguenti snippet di codice:

Opzione 1: Limitare l'accesso ai file multimediali per gli utenti WordPress non amministratori

Questo codice verifica se l'utente corrente non è un amministratore. Se non è un amministratore, filtra la libreria multimediale per mostrare solo i file che l'utente ha caricato personalmente.

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

Ciò significa che gli utenti normali possono vedere e gestire solo i propri file multimediali, mentre gli amministratori possono ancora vedere e gestire tutti i file.

Opzione 2: Limitare l'accesso ai file multimediali per gli utenti WordPress senza permessi di modifica dei post

Questo codice è perfetto se vuoi che Editor e Amministratori gestiscano tutti i file multimediali, limitando invece Autori e Collaboratori solo ai propri caricamenti.

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

Funziona verificando se un utente ha il permesso edit_others_posts, che è una capacità che gli Editor hanno di default, ma gli Autori no.

Successivamente, scorri fino alla sezione 'Inserimento'. WPCode può aggiungere il tuo codice in diverse posizioni, come dopo ogni post, solo nel frontend o solo nell'area amministrativa.

Per utilizzare il codice PHP personalizzato su tutto il tuo sito web WordPress, fai clic su 'Inserimento automatico' se non è già selezionato. Quindi, apri il menu a discesa 'Posizione' e scegli 'Esegui ovunque'.

Eseguire codice PHP personalizzato sul tuo sito web utilizzando WPCode

Dopodiché, sei pronto per scorrere fino in cima allo schermo e fare clic sull’interruttore ‘Inattivo’ in modo che cambi in ‘Attivo’.

Infine, fai clic su 'Salva snippet' per rendere attivo lo snippet PHP.

Come limitare l'accesso ai file multimediali tramite codice

Ora, gli utenti avranno accesso solo ai file che caricano nella libreria multimediale di WordPress.

Domande frequenti

Ecco alcune delle domande più comuni che riceviamo sull'organizzazione dei caricamenti multimediali in WordPress.

È sicuro aggiungere codice personalizzato al mio sito WordPress?

Aggiungere codice direttamente al file functions.php del tuo tema può essere rischioso. Un piccolo errore di battitura o un errore potrebbe causare problemi o persino rendere il tuo sito inaccessibile.

Ecco perché consigliamo vivamente di utilizzare il plugin WPCode. Crea uno strato sicuro per l'aggiunta di snippet, così non dovrai preoccuparti di rompere nulla.

Questo influenzerà le prestazioni del mio sito web?

Assolutamente no. Lo snippet di codice che abbiamo fornito è molto leggero e funziona in modo efficiente.

Aggiunge solo un semplice controllo quando un utente accede alla libreria multimediale, quindi non rallenterà il tuo sito web per i tuoi visitatori.

Posso limitare l'accesso ai media per ruoli utente specifici?

Sì, assolutamente! Il codice può essere facilmente personalizzato per indirizzare un ruolo utente specifico. Ad esempio, se volessi che questa restrizione si applicasse solo agli utenti con il ruolo di 'Autore', potresti usare questo snippet invece:

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

Scopri altri modi per gestire i file di WordPress

Oltre a limitare i caricamenti di media in WordPress, potresti anche voler consultare le guide qui sotto per gestire meglio i tuoi file:

Speriamo che questo articolo ti abbia aiutato a organizzare meglio i caricamenti multimediali da parte degli utenti sul tuo sito WordPress. Successivamente, puoi consultare le nostre scelte esperte dei migliori plugin per slider di WordPress e la nostra guida su come caricare facilmente immagini in modo lazy in WordPress.

Se ti è piaciuto questo articolo, iscriviti al nostro canale YouTube per tutorial video su WordPress. Puoi anche trovarci su Twitter e Facebook.

Dichiarazione: Il nostro contenuto è supportato dai lettori. Ciò significa che se fai clic su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come è finanziato WPBeginner, perché è importante e come puoi supportarci. Ecco il nostro processo editoriale.

Il Toolkit WordPress Definitivo

Ottieni l'accesso GRATUITO al nostro toolkit - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Interazioni del lettore

13 CommentsLeave a Reply

  1. Chiunque cerchi un aggiornamento potrebbe voler considerare quanto segue, che si occupa dei problemi di elenco e griglia

    // Per la visualizzazione elenco
    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);
    }
    }
    }

    // Per la visualizzazione a griglia
    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. Il plugin funziona, ma se si passa a ‘upload.php?mode=list’ è possibile vedere di nuovo tutti i media. Funziona solo in modalità grid

  3. Fantastico! Funziona!

    Ma se si usa l'app di WordPress installata dal cellulare, tutti gli utenti possono ancora accedere all'intera libreria multimediale. Ci sono soluzioni?

    Il tuo aiuto è molto apprezzato!

    • Al momento non abbiamo una soluzione per l'app, ma terremo sicuramente d'occhio la questione.

      Amministratore

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

      Amministratore

  4. Sto cercando un modo per far caricare agli utenti direttamente dal loro PC invece di andare alla pagina dei media

  5. Questo potrebbe non essere il post su cui dovrei chiedere, ma...

    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? :)

    Insegnante-username1- media (vedi solo i file multimediali di username1)
    Insegnante-username2-media (vedi solo i file multimediali di username2)

  6. Invece di:

    !current_user_can(‘activate_plugins’)
    &&
    !current_user_can(‘edit_others_posts’)

    USA:

    !current_user_can(‘administrator’)

    Perché, ad esempio, se si utilizza il plugin 'User Role Editor', si potrebbe voler consentire all'utente corrente di poter attivare plugin E/O modificare post altrui.

    Just a thought, works for me :)

    Grazie per il post!

  7. Bel post.

    E c'è un modo per disabilitare il caricamento di file direttamente nella libreria multimediale e obbligare gli utenti (eccetto gli amministratori) a usare il pulsante Aggiungi Media all'interno dell'editor di post/pagina?

Lascia una risposta