Pålitliga WordPress-handledningar, när du behöver dem som mest.
Nybörjarguide till WordPress
WPB Cup
25 miljoner+
Webbplatser som använder våra plugins
16+
År av WordPress-erfarenhet
3000+
WordPress-handledningar
av experter

Hur begränsar man åtkomst till mediebiblioteket till användarens egna uppladdningar i WordPress

Att driva en WordPress-webbplats med flera författare är spännande tills mediebiblioteket blir ett fritt fall. Vi har varit där, och vi vet hur frustrerande det är när en författare av misstag raderar en annans bilder, vilket orsakar kaos precis före en stor lansering.

Att förhindra detta är enklare än du tror. Du kan begränsa vilka författare som ser vilka mediefiler, vilket återställer ordningen i ditt bibliotek.

Även om WordPress inte har en inbyggd inställning för detta, kommer vi att dela den enkla metod vi använder i våra egna projekt. Det hjälper dig att hålla dina mediefiler organiserade och säkra.

Hur begränsar man åtkomst till mediebiblioteket till användarens egna uppladdningar i WordPress

Varför begränsa författarens åtkomst till medieuppladdningar?

Om du har en WordPress-blogg med flera författare, då kan dina författare ladda upp många olika bilder. Detta kan göra det svårt för en författare att hitta rätt bild, eller så kan de av misstag radera eller redigera en annan persons mediefil.

Detta kan orsaka alla möjliga problem, inklusive dålig produktivitet, mycket extra arbete för webbplatsadministratörer och redaktörer, och en komplicerad redaktionell arbetsflöde.

Denna obegränsade åtkomst kan också vara en integritetsfråga. Till exempel, om du arbetar med en ny produkt eller blogginläggsidé, kan andra författare se konfidentiella bilder i mediebiblioteket innan du gör ett offentligt tillkännagivande.

Om du har en WordPress-medlemskapswebbplats, kan bidragsgivare till och med kunna komma åt premium-mediefiler via mediatoteket.

Med det sagt, låt oss titta på hur man begränsar vem som kan se medieuppladdningar inom ditt WordPress-adminområde.

Hur man organiserar medieuppladdningar av användare med WPCode

Medan vissa plugins har erbjudit den här funktionen tidigare, är det mest pålitliga och lättviktiga sättet att organisera användaruppladdningar genom att lägga till ett enkelt kodavsnitt. Oroa dig inte, detta är enklare än det låter!

Vi kommer att använda det kostnadsfria pluginet WPCode för att göra detta. Det är det säkraste och enklaste sättet att lägga till anpassad kod på din WordPress-webbplats utan att redigera dina temafiler.

Vi visar dig två kodavsnitt du kan använda. Det första avsnittet begränsar åtkomsten till mediebiblioteket för alla icke-administratörsanvändare, och det andra begränsar åtkomsten för specifika användarroller som författare och bidragsgivare.

Ofta ber guider dig att lägga till anpassad kod i ditt WordPress-tema. Detta rekommenderas dock inte, eftersom enkla misstag eller felskrivningar i din kod kan orsaka vanliga WordPress-fel eller till och med bryta din webbplats helt.

Därför rekommenderar vi WPCode.

WPCode är det bästa kodsnutt-pluginet som används av över 1 miljon WordPress-webbplatser. Det gör det enkelt att lägga till anpassad kod i WordPress utan att behöva redigera functions.php-filen.

Experttips: Här på WPBeginner använder vi WPCode för att hantera alla anpassade funktioner på vår portfölj av webbplatser. Det gör det möjligt för vårt utvecklingsteam att lägga till och felsöka kod säkert utan att någonsin röra kärntemafiler, vilket sparar enormt mycket tid och förhindrar kostsamma fel.

Det första du behöver göra är att installera och aktivera det kostnadsfria WPCode-pluginet. För mer information, se vår steg-för-steg-guide om hur man installerar ett WordPress-plugin.

Efter aktivering, gå till Code Snippets » Add Snippet.

Hur man lägger till anpassade PHP-avsnitt på din webbplats med WPCode

Här ser du alla färdiga kodsnuttar du kan lägga till på din webbplats. Dessa inkluderar kodsnuttar som låter dig helt inaktivera WordPress-kommentarer, inaktivera bildbilagesidor, och mer.

Håll bara muspekaren över ‘Lägg till din anpassade kod’ och välj sedan ‘Använd kodavsnitt.’

Lägga till ett anpassat kodavsnitt till WordPress

Till att börja med, skriv in en titel för det anpassade kodavsnittet. Detta kan vara vad som helst som hjälper dig att identifiera avsnittet i WordPress-instrumentpanelen.

Öppna sedan rullgardinsmenyn 'Kodtyp' och välj 'PHP-utdrag'.

Begränsa åtkomst till mediebiblioteket med WPCode

I området 'Kodförhandsgranskning' kan du klistra in en av följande kodsnuttar:

Alternativ 1: Begränsa åtkomst till mediefiler för WordPress-användare som inte är administratörer

Denna kod kontrollerar om den aktuella användaren inte är en administratör. Om de inte är en administratör, filtrerar den mediebiblioteket för att bara visa de filer som användaren själv har laddat upp.

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

Detta innebär att vanliga användare bara kan se och hantera sina egna mediefiler, medan administratörer fortfarande kan se och hantera alla filer.

Alternativ 2: Begränsa åtkomst till mediefiler för WordPress-användare utan behörighet att redigera inlägg

Den här koden är perfekt om du vill att redaktörer och administratörer ska hantera alla mediefiler, samtidigt som författare och bidragsgivare begränsas till sina egna uppladdningar.

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

Det fungerar genom att kontrollera om en användare har behörigheten edit_others_posts, vilket är en förmåga som redigerare har som standard, men som författare inte har.

Rulla sedan bara ner till avsnittet 'Infogning'. WPCode kan lägga till din kod på olika platser, som efter varje inlägg, endast på framsidan, eller endast i admin.

För att använda den anpassade PHP-koden över hela din WordPress-webbplats, klicka på 'Infoga automatiskt' om det inte redan är valt. Öppna sedan rullgardinsmenyn 'Plats' och välj 'Kör överallt'.

Köra anpassad PHP-kod på din webbplats med WPCode

Därefter är du redo att skrolla till toppen av skärmen och klicka på växlingsknappen 'Inaktiv' så att den ändras till 'Aktiv'.

Klicka slutligen på ‘Spara utdrag’ för att göra PHP-utdraget live.

Hur man begränsar åtkomst till mediefiler med kod

Nu kommer användarna bara att ha tillgång till de filer de laddar upp till WordPress mediebibliotek.

Vanliga frågor

Här är några av de vanligaste frågorna vi får om att organisera medieuppladdningar i WordPress.

Är det säkert att lägga till anpassad kod på min WordPress-webbplats?

Att lägga till kod direkt i din temas functions.php-fil kan vara riskabelt. En liten felskrivning eller ett fel kan orsaka problem eller till och med göra din webbplats otillgänglig.

Det är därför vi starkt rekommenderar att använda WPCode-pluginet. Det skapar ett säkert lager för att lägga till kodavsnitt, så du behöver inte oroa dig för att förstöra något.

Kommer detta att påverka min webbplats prestanda?

Inte alls. Kodavsnittet vi tillhandahöll är mycket lättviktigt och körs effektivt.

Det lägger bara till en enkel kontroll när en användare får åtkomst till mediebiblioteket, så det kommer inte att sakta ner din webbplats för dina besökare.

Kan jag begränsa medieåtkomst för specifika användarroller?

Ja, absolut! Koden kan enkelt anpassas för att rikta sig mot en specifik användarroll. Om du till exempel ville att denna begränsning skulle gälla endast användare med rollen 'Författare', kan du använda det här kodavsnittet istället:

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

Lär dig fler sätt att hantera WordPress-filer

Förutom att begränsa medieuppladdningar i WordPress, kanske du också vill titta på guiderna nedan för att bättre hantera dina filer:

Vi hoppas att den här artikeln hjälpte dig att bättre organisera medieuppladdningar av användare på din WordPress-webbplats. Därefter kan du kolla in våra experters val av de bästa WordPress-sliderplugins och vår guide om hur man enkelt lazy loadar bilder i WordPress.

Om du gillade den här artikeln, prenumerera då på vår YouTube-kanal för WordPress-videoguider. Du kan också hitta oss på Twitter och Facebook.

Upplysning: Vårt innehåll stöds av läsarna. Det innebär att om du klickar på några av våra länkar kan vi tjäna en provision. Se hur WPBeginner finansieras, varför det är viktigt och hur du kan stödja oss. Här är vår redaktionella process.

Det ultimata WordPress-verktyget

Få GRATIS tillgång till vår verktygslåda - en samling WordPress-relaterade produkter och resurser som alla proffs bör ha!

Läsarnas interaktioner

13 CommentsLeave a Reply

  1. Alla som letar efter en uppdatering kanske vill överväga följande som tar hand om list- och problem med rutnätet

    // För listvy
    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);
    }
    }
    }

    // För rutnätsvy
    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. Pluginet fungerar, men om du byter till 'upload.php?mode=list' är det möjligt att se alla medier igen. Det fungerar bara i läget 'grid'.

  3. Fantastiskt! Det fungerar!

    Men om man använder WordPress-appen installerad från mobilen kan alla användare fortfarande komma åt hela mediatoteket. Några lösningar?

    Din hjälp uppskattas mycket!

    • Vi har ingen lösning för appen för tillfället men vi kommer definitivt att hålla ögonen öppna.

      Admin

  4. Letar efter ett sätt jag kan få användare att ladda upp direkt från sin dator istället för att gå till mediasidan

  5. Det här kanske inte är inlägget jag borde fråga detta på men…

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

    Lärare-användarnamn1- media (ser endast användarnamn1 mediafiler)
    Lärare-användarnamn2-media (ser endast användarnamn2 mediafiler)

  6. Istället för:

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

    ANVÄND:

    !current_user_can(‘administrator’)

    För om du till exempel använder pluginet 'User Role Editor', kanske du vill tillåta den aktuella användaren att kunna aktivera plugins OCH/ELLER redigera andras inlägg.

    Just a thought, works for me :)

    Tack för inlägget!

  7. Bra inlägg.

    Och finns det ett sätt att neka uppladdning av filer direkt till mediebiblioteket och tvinga användare (utom administratörer) att använda knappen Lägg till media inom inlägg/sidredigeraren?

Lämna ett svar

Tack för att du väljer att lämna en kommentar. Tänk på att alla kommentarer modereras enligt vår kommentarspolicy, och din e-postadress kommer INTE att publiceras. Använd INTE nyckelord i namn fältet. Låt oss ha en personlig och meningsfull konversation.