Zaufane samouczki WordPress, kiedy ich najbardziej potrzebujesz.
Przewodnik dla początkujących po WordPressie
WPB Cup
25 milionów+
Witryny korzystające z naszych wtyczek
16+
Lata doświadczenia z WordPressem
3000+
Samouczki WordPress od ekspertów

Jak ograniczyć dostęp do Biblioteki Mediów do własnych przesłanych plików użytkownika w WordPress

Prowadzenie wieloautorskiej witryny WordPress jest ekscytujące, dopóki biblioteka mediów nie stanie się wolną amerykanką. Byliśmy tam i wiemy, jak frustrujące jest, gdy jeden autor przypadkowo usuwa obrazy innego, powodując chaos tuż przed ważnym uruchomieniem.

Zapobieganie temu jest łatwiejsze niż myślisz. Możesz ograniczyć, którzy autorzy widzą które pliki multimedialne, przywracając porządek w swojej bibliotece.

Chociaż WordPress nie ma wbudowanego ustawienia do tego celu, podzielimy się prostą metodą, której używamy w naszych własnych projektach. Pomoże Ci to utrzymać porządek i bezpieczeństwo plików multimedialnych.

Jak ograniczyć dostęp do Biblioteki Mediów do własnych przesłanych plików użytkownika w WordPress

Dlaczego ograniczać dostęp autorom do przesyłania multimediów?

Jeśli masz blog WordPress z wieloma autorami, Twoi autorzy mogą przesyłać wiele różnych obrazów. Może to utrudnić autorowi znalezienie odpowiedniego obrazu, lub mogą przypadkowo usunąć lub edytować plik multimedialny innej osoby.

Może to spowodować wszelkiego rodzaju problemy, w tym niską produktywność, mnóstwo dodatkowej pracy dla administratorów i redaktorów witryny oraz skomplikowany przepływ pracy redakcyjnej.

Ten nieograniczony dostęp może również stanowić problem z prywatnością. Na przykład, jeśli pracujesz nad nowym produktem lub pomysłem na wpis na blogu, inni autorzy mogą zobaczyć poufne obrazy w bibliotece multimediów, zanim dokonasz publicznego ogłoszenia.

Jeśli masz stronę członkowską WordPress, wówczas współpracownicy mogą nawet uzyskać dostęp do plików multimedialnych premium za pośrednictwem biblioteki multimediów.

Mając to na uwadze, przyjrzyjmy się, jak ograniczyć dostęp do plików multimedialnych w obszarze administracyjnym WordPress.

Jak organizować przesyłane media przez użytkowników za pomocą WPCode

Chociaż niektóre wtyczki oferowały tę funkcję w przeszłości, najbardziej niezawodnym i lekkim sposobem organizacji przesyłanych przez użytkowników plików jest dodanie prostego fragmentu kodu. Nie martw się, jest to łatwiejsze niż brzmi!

Użyjemy do tego darmowego wtyczki WPCode. Jest to najbezpieczniejszy i najprostszy sposób na dodawanie niestandardowego kodu do Twojej witryny WordPress bez edycji plików motywu.

Pokażemy dwa fragmenty kodu, których możesz użyć. Pierwszy fragment ogranicza dostęp do biblioteki multimediów dla wszystkich użytkowników niebędących administratorami, a drugi ogranicza dostęp dla określonych ról użytkowników, takich jak Autorzy i Współtwórcy.

Często przewodniki proszą o dodanie niestandardowego kodu do motywu WordPress. Jednak nie jest to zalecane, ponieważ proste błędy lub literówki w kodzie mogą spowodować częste błędy WordPress lub nawet całkowicie zepsuć Twoją witrynę.

Dlatego polecamy WPCode.

WPCode to najlepsza wtyczka do fragmentów kodu używana przez ponad 1 milion stron internetowych WordPress. Ułatwia dodawanie niestandardowego kodu w WordPress bez konieczności edycji pliku functions.php.

Wskazówka eksperta: Tutaj w WPBeginner używamy WPCode do zarządzania wszystkimi niestandardowymi funkcjami w naszym portfolio stron internetowych. Pozwala to naszemu zespołowi programistów bezpiecznie dodawać i rozwiązywać problemy z kodem, nie dotykając plików motywu, co jest ogromną oszczędnością czasu i zapobiega kosztownym błędom.

Pierwszą rzeczą, którą musisz zrobić, jest zainstalowanie i aktywowanie darmowego pluginu WPCode. Więcej szczegółów znajdziesz w naszym przewodniku krok po kroku na temat jak zainstalować plugin WordPress.

Po aktywacji przejdź do Fragmenty kodu » Dodaj fragment.

Jak dodać własne fragmenty PHP do swojej witryny za pomocą WPCode

Tutaj zobaczysz wszystkie gotowe fragmenty kodu, które możesz dodać do swojej witryny. Obejmują one fragmenty, które pozwalają na całkowite wyłączenie komentarzy w WordPressie, dezaktywację stron załączników obrazów i inne.

Po prostu najedź kursorem myszy na „Dodaj własny kod”, a następnie wybierz „Użyj fragmentu”.

Dodawanie niestandardowego fragmentu kodu do WordPress

Na początek wpisz tytuł dla niestandardowego fragmentu kodu. Może to być cokolwiek, co pomoże Ci zidentyfikować fragment w panelu WordPress.

Następnie otwórz menu rozwijane „Typ kodu” i wybierz „Fragment PHP”.

Ograniczanie dostępu do biblioteki mediów za pomocą WPCode

W obszarze „Podgląd kodu” możesz wkleić jeden z poniższych fragmentów kodu:

Opcja 1: Ograniczanie dostępu do plików multimedialnych dla użytkowników WordPress niebędących administratorami

Ten kod sprawdza, czy bieżący użytkownik nie jest administratorem. Jeśli nie jest administratorem, filtruje bibliotekę multimediów, aby pokazać tylko pliki, które użytkownik sam przesłał.

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

Oznacza to, że zwykli użytkownicy mogą widzieć i zarządzać tylko swoimi plikami multimedialnymi, podczas gdy administratorzy nadal mogą widzieć i zarządzać wszystkimi plikami.

Opcja 2: Ograniczanie dostępu do plików multimedialnych dla użytkowników WordPress bez uprawnień do edycji postów

Ten kod jest idealny, jeśli chcesz, aby Edytorzy i Administratorzy zarządzali wszystkimi plikami multimedialnymi, jednocześnie ograniczając Autorów i Współpracowników do ich własnych przesłanych plików.

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

Działa poprzez sprawdzenie, czy użytkownik ma uprawnienie edit_others_posts, które domyślnie posiadają Edytorzy, ale nie Autorzy.

Następnie po prostu przewiń do sekcji „Wstawianie”. WPCode może dodać Twój kod w różnych lokalizacjach, takich jak po każdym poście, tylko na froncie, lub tylko w panelu administracyjnym.

Aby użyć niestandardowego kodu PHP na całej stronie WordPress, kliknij „Automatycznie wstaw”, jeśli nie jest jeszcze zaznaczone. Następnie otwórz menu rozwijane „Lokalizacja” i wybierz „Uruchom wszędzie”.

Uruchamianie niestandardowego kodu PHP w całej witrynie za pomocą WPCode

Następnie jesteś gotowy, aby przewinąć do góry ekranu i kliknąć przełącznik „Nieaktywny”, aby zmienił się na „Aktywny”.

Na koniec kliknij „Zapisz fragment”, aby fragment PHP stał się aktywny.

Jak ograniczyć dostęp do plików multimedialnych za pomocą kodu

Teraz użytkownicy będą mieli dostęp tylko do plików, które przesyłają do biblioteki multimediów WordPress.

Najczęściej zadawane pytania

Oto niektóre z najczęściej zadawanych pytań dotyczących organizacji przesłanych multimediów w WordPressie.

Czy dodawanie własnego kodu do mojej witryny WordPress jest bezpieczne?

Dodawanie kodu bezpośrednio do pliku functions.php twojego motywu może być ryzykowne. Mały błąd typograficzny lub błąd może spowodować problemy lub nawet uniemożliwić dostęp do Twojej witryny.

Dlatego zdecydowanie zalecamy korzystanie z wtyczki WPCode. Tworzy ona bezpieczną warstwę do dodawania fragmentów, dzięki czemu nie musisz martwić się o zepsucie czegokolwiek.

Czy wpłynie to na wydajność mojej witryny?

Wcale nie. Dostarczony przez nas fragment kodu jest bardzo lekki i działa wydajnie.

Dodaje tylko prostą weryfikację, gdy użytkownik uzyskuje dostęp do biblioteki mediów, więc nie spowolni to Twojej witryny dla odwiedzających.

Czy mogę ograniczyć dostęp do multimediów dla określonych ról użytkowników?

Tak, absolutnie! Kod można łatwo dostosować do konkretnej roli użytkownika. Na przykład, jeśli chcesz, aby to ograniczenie dotyczyło tylko użytkowników z rolą „Autor”, możesz zamiast tego użyć tego fragmentu:

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

Poznaj więcej sposobów zarządzania plikami WordPress

Oprócz ograniczania przesyłania multimediów w WordPressie, możesz również zapoznać się z poniższymi przewodnikami, aby lepiej zarządzać swoimi plikami:

Mamy nadzieję, że ten artykuł pomógł Ci lepiej organizować przesyłane przez użytkowników pliki multimedialne w Twojej witrynie WordPress. Następnie możesz zapoznać się z naszymi najlepszymi wyborami najlepszych wtyczek suwaków WordPress oraz naszym przewodnikiem jak łatwo ładować obrazy w WordPress.

Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube po samouczki wideo 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 w niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak finansowany jest WPBeginner, dlaczego to ważne i jak możesz nas wesprzeć. Oto nasz proces redakcyjny.

Ostateczny zestaw narzędzi WordPress

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

Interakcje czytelników

13 CommentsLeave a Reply

  1. Każdy, kto szuka aktualizacji, może rozważyć poniższe rozwiązanie, które rozwiązuje problemy z listą i siatką

    // Dla widoku listy
    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);
    }
    }
    }

    // Dla widoku siatki
    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. Wtyczka działa, ale jeśli przełączysz się na „upload.php?mode=list”, możliwe jest ponowne zobaczenie wszystkich multimediów. Działa tylko w trybie „grid”

  3. Niesamowite! Działa!

    Ale jeśli korzystasz z aplikacji WordPress zainstalowanej z telefonu komórkowego, wszyscy użytkownicy nadal mają dostęp do całej biblioteki multimediów. Czy są jakieś rozwiązania?

    Twoja pomoc jest bardzo doceniana!

    • Na chwilę obecną nie mamy rozwiązania dla aplikacji, ale z pewnością będziemy jej pilnować.

      Admin

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

      Admin

  4. Szukam sposobu, aby użytkownicy mogli przesyłać pliki bezpośrednio ze swoich komputerów, zamiast przechodzić na stronę mediów.

  5. To może nie być post, na którym powinnam zadawać to pytanie, ale…

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

    Nauczyciel-nazwa_użytkownika1- media (widoczne tylko pliki mediów nazwa_użytkownika1)
    Nauczyciel-nazwa_użytkownika2-media (widoczne tylko pliki mediów nazwa_użytkownika2)

  6. Zamiast:

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

    UŻYJ:

    !current_user_can(‘administrator’)

    Ponieważ, na przykład, jeśli używasz wtyczki „Edytor ról użytkownika”, możesz chcieć zezwolić bieżącemu użytkownikowi na aktywowanie wtyczek I/LUB edytowanie innych postów.

    Just a thought, works for me :)

    Dzięki za post!

  7. Miły post.

    Czy jest sposób, aby uniemożliwić przesyłanie plików bezpośrednio do biblioteki multimediów i zmusić użytkowników (z wyjątkiem administratorów) do korzystania z przycisku „Dodaj media” w edytorze posta/strony?

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszą polityką komentowania, a Twój adres e-mail NIE zostanie opublikowany. Prosimy NIE używać słów kluczowych w polu nazwy. Prowadźmy osobistą i znaczącą rozmowę.