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

Jak ograniczyć dostęp do multimediów do własnych plików przesłanych przez użytkownika w WordPress?

Domyślnie WordPress umożliwia autorom wyświetlanie wszystkich obrazków w bibliotece multimediów twojej witryny. Może to być problematyczne, jeśli zapraszasz wielu autorów gościnnych. W tym artykule pokażemy, jak ograniczyć dostęp do biblioteki multimediów WordPress do własnych plików przesłanych przez użytkownika.

Restrict WordPress media library access to user's own uploads

Dlaczego warto ograniczyć dostęp do biblioteki multimediów do własnych plików użytkownika?

WordPress pozwala autorom zobaczyć wszystkie pliki w bibliotece multimediów. Mogą oni również zobaczyć obrazki przesłane przez administratora, redaktora lub innych autorów.

Aby dowiedzieć się więcej, zobacz nasz artykuł na temat ról i uprawnień użytkowników WordPress.

Załóżmy, że tworzysz nowy wpis, aby ogłosić nadchodzący produkt lub ofertę. Autorzy i autorzy gościnni na twojej witrynie internetowej będą mogli zobaczyć obrazki przesłane do tego artykułu w bibliotece multimediów.

Twoje zdjęcia będą również widoczne w wyskakującym okienku „Dodaj media”, które użytkownicy widzą podczas dodawania obrazków do własnych artykułów.

Dla wielu witryn internetowych może to nie mieć większego znaczenia. Jeśli jednak prowadzisz witrynę internetową z wieloma autorami, możesz chcieć to zmienić.

Przyjrzyjmy się, jak łatwo ograniczyć dostęp do multimediów do własnych plików użytkownika.

Metoda 1: Ograniczenie dostępu do biblioteki multimediów za pomocą wtyczki

Ta metoda jest łatwiejsza i zalecana dla wszystkich użytkowników.

Pierwszą rzeczą, którą musisz zrobić, to zainstalować i włączyć wtyczkę Restrict Media Library Access. Aby uzyskać więcej informacji, zobacz nasz przewodnik krok po kroku, jak zainstalować wtyczkę WordPress.

Ta wtyczka działa po wyjęciu z pudełka i nie ma żadnych ustawień do skonfigurowania.

Po włączaniu filtruje zapytanie o multimedia, aby sprawdzić, czy obecny użytkownik jest administratorem lub edytorem. Jeśli rola użytkownika nie jest zgodna z żadną z tych ról, wyświetlane będą tylko własne pliki przesłane przez użytkownika.

Użytkownicy z rolą administratora lub redaktora będą mogli zobaczyć wszystkie przesłane multimedia w zwykły sposób.

Metoda 2: Ręczne ograniczenie dostępu do multimediów

Pierwsza metoda sprawdzi się w przypadku większości witryn internetowych, ponieważ ogranicza dostęp do biblioteki multimediów i pozwala tylko administratorowi i redaktorowi zobaczyć wszystkie przesłane multimedia.

Jeśli jednak chcesz dodać własną rolę użytkownika lub po prostu nie chcesz używać wtyczki, możesz wypróbować tę metodę. Wykorzystuje ona ten sam kod używany przez wtyczkę, ale będziesz mógł go zmodyfikować tak, aby spełniał twoje potrzeby.

Ta metoda wymaga dodania kodu do twoich plików WordPress. Jeśli nie robiłeś tego wcześniej, zapoznaj się z naszym przewodnikiem na temat kopiowania i wklejania kodu w WordPress.

Będziesz musiał dodać następujący kod do twojego pliku functions.php WordPressa lub wtyczki specyficznej dla witryny.

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

.

Ten kod używa funkcji current_user_can do sprawdzenia, czy użytkownik ma możliwość włączania wtyczek lub edytowania wpisów innych użytkowników. Jeśli nie, to zmienia zapytanie używane do wyświetlania plików multimedialnych i ogranicza je do identyfikatora użytkownika.

Mamy nadzieję, że ten artykuł pomógł ci dowiedzieć się, jak ograniczyć dostęp do multimediów WordPress do własnych plików przesłanych przez użytkownika. Możesz także chcieć ograniczyć autorów do ich własnych wpisów w obszarze administracyjnym WordPress.

Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube, aby zobaczyć poradniki dotyczące filmów WordPress. Możesz nas również znaleźć na Twitterze i Facebooku.

Ujawnienie: Nasze treści są wspierane przez czytelników. Oznacza to, że jeśli klikniesz na niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak WPBeginner jest finansowany, dlaczego to ma znaczenie i jak możesz nas wspierać. Oto nasz proces redakcyjny.

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.

Najlepszy zestaw narzędzi WordPress

Uzyskaj BEZPŁATNY dostęp do naszego zestawu narzędzi - zbiór produktów i zasobów związanych z WordPressem, które każdy profesjonalista powinien mieć!

Reader Interactions

13 komentarzyZostaw odpowiedź

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

      Administrator

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

      Administrator

  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.

      Administrator

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

      Administrator

  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?

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszymi polityka komentarzy, a Twój adres e-mail NIE zostanie opublikowany. NIE używaj słów kluczowych w polu nazwy. Przeprowadźmy osobistą i konstruktywną rozmowę.