Standardmäßig erlaubt WordPress den Autoren, alle Bilder in der Mediathek Ihrer Website zu sehen. Das kann problematisch sein, wenn Sie viele Gastautoren einladen. In diesem Artikel zeigen wir Ihnen, wie Sie den Zugriff auf die WordPress-Mediathek auf die eigenen Uploads der Benutzer beschränken können.
Warum den Zugriff auf die Mediathek auf benutzereigene Uploads beschränken?
WordPress erlaubt es Autoren, alle Dateien in der Mediathek zu sehen. Sie können auch Bilder sehen, die von einem Administrator, Redakteur oder anderen Autoren hochgeladen wurden.
Weitere Informationen finden Sie in unserem Artikel über WordPress-Benutzerrollen und -Berechtigungen.
Nehmen wir an, Sie erstellen einen neuen Beitrag, um ein neues Produkt oder ein Geschäft anzukündigen. Autoren und Gastautoren auf Ihrer Website können die Bilder sehen, die Sie für diesen Artikel in der Mediathek hochladen.
Ihre Uploads werden auch im Popup-Fenster „Medien hinzufügen“ angezeigt, das die Nutzer sehen, wenn sie Bilder zu ihren eigenen Artikeln hinzufügen.
Für viele Websites mag dies keine große Sache sein. Wenn Sie jedoch eine Website mit mehreren Autoren betreiben, möchten Sie dies vielleicht ändern.
Schauen wir uns an, wie Sie den Zugriff auf die Mediathek ganz einfach auf die eigenen Uploads der Benutzer beschränken können.
Methode 1: Beschränken Sie den Zugriff auf die Mediathek mit einem Plugin
Diese Methode ist einfacher und wird für alle Benutzer empfohlen.
Als Erstes müssen Sie das Plugin “ Restrict Media Library Access “ installieren und aktivieren. Weitere Einzelheiten finden Sie in unserer Schritt-für-Schritt-Anleitung für die Installation eines WordPress-Plugins.
Dieses Plugin ist sofort einsatzbereit und es gibt keine Einstellungen, die Sie vornehmen müssen.
Nach der Aktivierung filtert es die Abfrage der Medienbibliothek, um zu sehen, ob der aktuelle Benutzer ein Administrator oder ein Redakteur ist. Wenn die Benutzerrolle nicht mit einer der beiden übereinstimmt, werden nur die eigenen Uploads des Benutzers angezeigt.
Benutzer mit der Benutzerrolle Administrator oder Redakteur können wie gewohnt alle Medien-Uploads sehen.
Methode 2: Manuelle Einschränkung des Zugriffs auf die Medienbibliothek
Die erste Methode eignet sich für die meisten Websites, da sie den Zugriff auf die Medienbibliothek einschränkt und nur dem Administrator und dem Redakteur erlaubt, alle Medien-Uploads zu sehen.
Wenn Sie jedoch eine benutzerdefinierte Benutzerrolle hinzufügen möchten oder einfach kein Plugin verwenden möchten, können Sie stattdessen diese Methode ausprobieren. Sie verwendet denselben Code wie das Plugin, aber Sie können ihn an Ihre Bedürfnisse anpassen.
Bei dieser Methode müssen Sie Code zu Ihren WordPress-Dateien hinzufügen. Wenn Sie dies noch nicht getan haben, werfen Sie einen Blick auf unsere Anleitung zum Kopieren und Einfügen von Code in WordPress.
Sie müssen den folgenden Code in die Datei functions.php von WordPress oder in ein Site-spezifisches Plugin einfügen.
// 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; }
Dieser Code verwendet die Funktion current_user_can, um zu prüfen, ob der Benutzer die Fähigkeit hat, Plugins zu aktivieren oder die Beiträge anderer Benutzer zu bearbeiten. Wenn dies nicht der Fall ist, wird die Abfrage zur Anzeige von Mediendateien geändert und auf die ID des Benutzers beschränkt.
Wir hoffen, dass dieser Artikel Ihnen geholfen hat, den Zugriff auf die WordPress-Mediathek auf die eigenen Uploads des Benutzers zu beschränken. Möglicherweise möchten Sie auch Autoren auf ihre eigenen Beiträge im WordPress-Administrationsbereich beschränken.
Wenn Ihnen dieser Artikel gefallen hat, dann abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Videotutorials. Sie können uns auch auf Twitter und Facebook finden.
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
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
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
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
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.
Admin