Po latach prowadzenia bloga z wieloma autorami odkryliśmy, że istnieją sytuacje, w których importowanie multimediów przez użytkowników staje się ważne. Z naszego doświadczenia wynika, że wraz ze wzrostem zespołu współpracowników rośnie potencjał chaosu w zarządzaniu multimediami.
Spotkaliśmy się ze scenariuszami, w których autorzy przypadkowo zmodyfikowali lub usunęli nawzajem swoje obrazy, co doprowadziło do uszkodzenia postów. W jednej z instancji błędne kliknięcie spowodowało usunięcie kluczowej grafiki, powodując opóźnienie w publikacji ważnego artykułu.
Aby temu zapobiec, możesz ograniczyć lub uporządkować przesyłanie multimediów przez użytkowników w WordPress. Ta funkcja nie jest oferowana domyślnie, więc pokażemy ci nasz sposób na zrobienie tego.
Dlaczego ograniczać autorom dostęp do przesyłanych multimediów?
Jeśli masz blog WordPress z wieloma autorami, twoi autorzy mogą przesyłać wiele różnych obrazków. Może to utrudnić autorowi znalezienie odpowiedniego obrazka lub może on przypadkowo usunąć lub edytować plik multimedialny innej osoby.
Może to powodować różnego rodzaju problemy, w tym niską produktywność, mnóstwo dodatkowej pracy dla administratorów witryn i redaktorów oraz skomplikowany przepływ pracy redakcyjnej.
Ten nieograniczony dostęp może również stanowić zagrożenie dla prywatności. Na przykład, jeśli pracujesz nad nowym produktem lub wpisem na blogu, inni autorzy mogą zobaczyć poufne obrazki w bibliotece multimediów, zanim je publicznie ogłosisz.
Jeśli posiadasz witrynę członkowską WordPress, to współtwórcy mogą nawet mieć dostęp do plików multimedialnych premium za pośrednictwem biblioteki multimediów.
Biorąc to pod uwagę, przyjrzyjmy się, jak ograniczyć, kto może zobaczyć przesyłane multimedia w obszarze administracyjnym WordPress.
Jak organizować przesyłanie multimediów przez użytkowników za pomocą WPCode
W tamtych czasach znaleźliśmy wtyczkę, której można było użyć, aby uniemożliwić użytkownikom bez uprawnień do edycji postów dostęp do plików innych użytkowników w bibliotece multimediów WordPress. Wtyczka ta była łatwa w użyciu, ale nie jest już aktualizowana.
Ponadto wtyczka może być dość ograniczona, ponieważ można jedynie uniemożliwić użytkownikom bez uprawnień edit_others_posts
(administratorom i redaktorom witryny) dostęp do plików multimedialnych innych użytkowników.
Jeśli jesteś administratorem witryny, może zaistnieć sytuacja, w której będziesz chciał ograniczyć wszystkim użytkownikom (z wyjątkiem siebie) dostęp do plików multimedialnych innych osób.
W takim przypadku możesz zamiast tego dodać własny kod do twojego bloga WordPress. Pokażemy ci dwa fragmenty kodu: jeden, który ogranicza dostęp do plików multimedialnych dla użytkowników niebędących administratorami, a drugi dla użytkowników bez uprawnień edit_others_posts
.
Często przewodniki proszą o dodanie własnego kodu do twojego motywu WordPress. Nie jest to jednak zalecane, ponieważ proste błędy lub literówki w twoim kodzie mogą powodować typowe błędy WordPressa lub nawet całkowicie zepsuć twoją witrynę.
Właśnie dlatego polecamy WPCode.
WPCode to najlepsza wtyczka fragmentów kodu używana przez ponad 1 milion witryn internetowych WordPress. Ułatwia ona dodawanie własnego kodu w WordPress ie bez konieczności edytowania pliku functions.php.
Pierwszą rzeczą, którą musisz zrobić, to zainstalować i włączyć darmową wtyczkę WPCode. Aby uzyskać więcej informacji, zobacz nasz przewodnik krok po kroku, jak zainstalować wtyczkę WordPress.
Po włączaniu udaj się do Code Snippets ” Add Snippet.
Tutaj zobaczysz wszystkie gotowe fragmenty kodu, które możesz dodać do swojej witryny. Obejmują one fragmenty kodu, które pozwalają całkowicie wyłączyć komentarze WordPress, dezaktywować strony z załącznikami graficznymi i nie tylko.
Po prostu najedź kursorem myszy na „Dodaj własny kod”, a następnie wybierz „Użyj fragmentu kodu”.
Na początek wpisz tytuł własnego fragmentu kodu. Może to być cokolwiek, co pomoże zidentyfikować fragment kodu w kokpicie WordPress.
Następnie otwórz listę rozwijaną „Rodzaj kodu” i wybierz „Fragment kodu PHP”.
W obszarze „Podgląd kodu” można wkleić jeden z poniższych fragmentów kodu:
Opcja 1: Ograniczenie dostępu do plików multimedialnych dla użytkowników WordPress niebędących administratorami
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;
}
Ten kod sprawdza, czy bieżący użytkownik nie jest administratorem. Jeśli nie jest administratorem, filtruje bibliotekę multimediów, aby wyświetlić tylko pliki przesłane przez użytkownika.
Oznacza to, że zwykli użytkownicy mogą widzieć i zarządzać tylko własnymi plikami multimedialnymi, podczas gdy administratorzy nadal mogą widzieć i zarządzać wszystkimi plikami.
Opcja 2: Ograniczenie dostępu do plików multimedialnych dla użytkowników WordPressa bez uprawnień do edycji wpisó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;
}
Ten kod jest nieco bardziej szczegółowy. Sprawdza, czy bieżący użytkownik jest zalogowany i nie ma uprawnień do aktywowania wtyczek lub edytowania postów innych osób. Jeśli użytkownik spełnia te warunki, może zobaczyć i zarządzać tylko własnymi plikami multimedialnymi.
Dzięki temu administratorzy i redaktorzy mogą zobaczyć wszystkie pliki, podczas gdy autorzy i współpracownicy mają dostęp tylko do własnych przesłanych plików.
Następnie przewiń do sekcji „Wstawienie”. WPCode może dodawać twój kod w różnych miejscach, na przykład po każdym wpisie, tylko na front-endzie lub tylko dla administratora.
Aby użyć własnego kodu PHP w całej witrynie internetowej WordPress, kliknij opcję „Auto Insert”, jeśli nie jest jeszcze wybrana. Następnie otwórz menu rozwijane „Lokalizacja” i wybierz „Uruchom wszędzie”.
Następnie możesz przewinąć do góry ekranu i kliknąć przełącznik „Nieaktywne”, aby zmienił się na „Aktywne”.
Na koniec kliknij „Zapisz fragment”, aby uruchomić fragment kodu PHP.
Teraz użytkownicy będą mieli dostęp tylko do plików, które prześlą do biblioteki multimediów WordPress.
Dowiedz się więcej o sposobach zarządzania plikami WordPress
Oprócz ograniczania przesyłania multimediów w WordPress, możesz również zapoznać się z poniższymi przewodnikami, aby lepiej zarządzać swoimi plikami:
- Jak zmienić nazwę plików Imagely i plików multimedialnych w WordPress?
- Najlepsze wtyczki Dropbox dla WordPress (wybór ekspertów)
- Jak utworzyć dodatkowe rozmiary obrazów w WordPress?
- Jak wymusić czyste nazwy plików graficznych w WordPress (prosta metoda)
- Jak wyczyścić bibliotekę multimediów WordPress
- Jak zmienić domyślną lokalizację przesyłania multimediów w WordPress?
Mamy nadzieję, że ten artykuł pomógł Ci lepiej zorganizować przesyłanie multimediów przez użytkowników w Twojej witrynie WordPress. Następnie możesz zapoznać się z naszymi eksperckimi typami najlepszych wtyczek do sliderów WordPress i naszym przewodnikiem na temat łatwego leniwego ładowania obrazów w WordPress.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Joshua Owolabi
I really enjoy all your tutorials kudos to you.
Although I am unable to use to build something due to lack of resources but you are WELDONE
WPBeginner Support
Glad our tutorials are helpful
Administrator
Teddu
I would like users to be able to upload content, and once its approved go onto a new page. the user could then edit it once it is there.
Think, similar how airbnb let users upload photos and descriptions of their holiday homes, and it appears in a page.
do you know a plug in for this functionality?
WPBeginner Staff
It is certainly possible but can potentially open up your site to spam, malicious hack attempts. Please see out article on how to allow users to submit posts in WordPress. You can allow users to upload media without registration.
fredtgorski
The one thing I would really(!) love to see on media library would be the ability to search media per post and/or date of upload. Every time I need to reuse an image I uploaded for a very old post, it is painfull to find it again. Sometimes I simply give up and reupload it…
agsm
sir , i want to design a wordpress page where user will upload some documents with following feilds (name,e-mail,title,summary and file upload) after submit , it should appear in dashboard and when admin approve it should be show on page (all listing of upload details which has been approved by admin ) , its possible,
thanks in advance!!!
Michel
https://wordpress.org/plugins/wp-user-frontend/
Jan
Do you also have a solution to enable visitors (non-logged-in users) to upload content?
Tony Franco
Very nice! Thank you!!