WordPress: regolamentare l’accesso alla sezione Media

Nella sezione Media di WordPress sono presenti vari file. Vediamo come attivare la visualizzazione selettiva (in base alla tipologia di account).

La sezione Media di WordPress è nota a tutti gli utilizzatori del popolare CMS. Si tratta dell’archivio in cui sono raccolti tutti i file multimediali (immagini, video, audio, pdf etc.) caricati dagli autori/collaboratori del sito. Come impostazione predefinita, il CMS consente a tutti di visionare il contenuto della cartella Media – senza alcuna distinzione. In un sito multiautore potrebbe invece essere necessario consentire la visualizzazione dei soli file caricati dall’autore/collaboratore di turno, anche al fine di rendere meno caotico l’archivio di ciascuno e facilitare la ricerca.

Nel tutorial di oggi vediamo come attivare un “filtro” affidandoci prima ad un plugin (metodo più semplice) e poi alla modifica di un file di sistema (metodo per utenti avanzati). Buona lettura.

Regolamentazione da plugin

Accediamo alla bacheca del CMS e raggiungiamo la sezione dedicata all’installazione di un nuovo plugin (Plugin, Aggiungi nuovo). Digitiamo Restrict Media Library Access e procediamo all’installazione ed attivazione tramite bottone contestuale:

Restrict_Media_1

La procedura è stata ultima! Il plugin non ha bisogno di ulteriori accorgimenti. Gli utenti con privilegi amministrativi (Admin) e gli Editor potranno continuare a visionare tutti i file della sezione Media mentre per gli altri sarà unicamente visibile l’elenco dei file che hanno caricato personalmente online.

Limitazione mediante modifica dei file di sistema

Per gli utenti avanzati, che non desiderano installare un plugin e vogliono modificare manualmente le regole di accesso, è possibile inserire le seguenti linee di codice nel file functions.php:

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