Tutoriale WordPress de încredere, atunci când aveți cea mai mare nevoie.
Ghidul începătorului pentru WordPress
Cupa WPB
25 de milioane+
Site-uri web care folosesc plugin-urile noastre
16+
Ani de experiență WordPress
3000+
Tutoriale WordPress de la experți

Cum să restricționezi accesul la biblioteca media la propriile încărcări ale utilizatorului în WordPress

Administrarea unui site WordPress cu mai mulți autori este interesantă până când biblioteca media devine un haos. Am trecut prin asta și știm cât de frustrant este atunci când un autor șterge accidental imaginile altuia, provocând haos chiar înainte de o lansare importantă.

Prevenirea acestui lucru este mai ușoară decât crezi. Poți restricționa ce autori văd ce fișiere media, readucând ordinea în biblioteca ta.

Deși WordPress nu are o setare încorporată pentru acest lucru, vom partaja metoda simplă pe care o folosim în proiectele noastre. Vă va ajuta să vă păstrați fișierele media organizate și securizate.

Cum să restricționezi accesul la biblioteca media la propriile încărcări ale utilizatorului în WordPress

De ce să restricționați accesul autorului la încărcările media?

Dacă aveți un blog WordPress cu mai mulți autori, atunci autorii dvs. ar putea încărca multe imagini diferite. Acest lucru poate face dificilă găsirea imaginii potrivite pentru un autor, sau aceștia ar putea șterge sau edita din greșeală fișierul media al altei persoane.

Acest lucru poate cauza tot felul de probleme, inclusiv productivitate scăzută, multă muncă suplimentară pentru administratorii și editorii site-ului și un flux de lucru editorial complicat. flux de lucru editorial.

Acest acces nelimitat poate fi, de asemenea, o problemă de confidențialitate. De exemplu, dacă lucrați la un produs nou sau la o idee de postare pe blog, atunci alți autori ar putea vedea imagini confidențiale în biblioteca media înainte de a face un anunț public.

Dacă aveți un site de membri WordPress, atunci contributorii ar putea chiar să acceseze fișiere media premium prin biblioteca media.

Acestea fiind spuse, să vedem cum putem restricționa cine poate vedea încărcările media în zona de administrare WordPress.

Cum să organizezi încărcările media pe utilizatori cu WPCode

Deși unele pluginuri au oferit această funcționalitate în trecut, cea mai fiabilă și ușoară modalitate de a organiza încărcările utilizatorilor este prin adăugarea unui simplu fragment de cod. Nu vă faceți griji, este mai ușor decât pare!

Vom folosi pluginul gratuit WPCode pentru a face acest lucru. Este cea mai sigură și mai ușoară modalitate de a adăuga cod personalizat pe site-ul dvs. WordPress fără a edita fișierele temei.

Vă vom arăta două fragmente de cod pe care le puteți utiliza. Primul fragment restricționează accesul la biblioteca media pentru toți utilizatorii non-administratori, iar al doilea restricționează accesul pentru anumite roluri de utilizator, cum ar fi Autori și Contribuitori.

Adesea, ghidurile vă vor cere să adăugați cod personalizat la tema WordPress. Cu toate acestea, acest lucru nu este recomandat, deoarece greșelile simple sau greșelile de scriere în codul dvs. pot cauza erori comune WordPress sau chiar pot defecta complet site-ul dvs.

De aceea recomandăm WPCode.

WPCode este cel mai bun plugin pentru fragmente de cod, utilizat de peste 1 milion de site-uri WordPress. Facilitează adăugarea de cod personalizat în WordPress fără a fi nevoie să editați fișierul functions.php.

Sfat expert: Aici, la WPBeginner, folosim WPCode pentru a gestiona toate funcțiile personalizate pe portofoliul nostru de site-uri web. Permite echipei noastre de dezvoltare să adauge și să depaneze codul în siguranță, fără a atinge niciodată fișierele de bază ale temei, ceea ce economisește mult timp și previne erorile costisitoare.

Primul lucru pe care trebuie să-l faceți este să instalați și să activați pluginul gratuit WPCode. Pentru mai multe detalii, consultați ghidul nostru pas cu pas despre cum să instalați un plugin WordPress.

După activare, accesați Fragmente de cod » Adăugare fragment.

Cum să adăugați fragmente PHP personalizate pe site-ul dvs. folosind WPCode

Aici veți vedea toate fragmentele gata făcute pe care le puteți adăuga pe site-ul dvs. Acestea includ fragmente care vă permit să dezactivați complet comentariile WordPress, să dezactivați paginile de atașament ale imaginilor și multe altele.

Pur și simplu plasați cursorul mouse-ului peste „Adăugați codul dvs. personalizat” și apoi selectați „Utilizați fragment”.

Adăugarea unui fragment de cod personalizat în WordPress

Pentru a începe, introduceți un titlu pentru fragmentul de cod personalizat. Acesta poate fi orice vă ajută să identificați fragmentul în tabloul de bord WordPress.

După aceea, deschide meniul derulant „Tip cod” și selectează „Fragment PHP”.

Restricționarea accesului la biblioteca media folosind WPCode

În zona „Previzualizare cod”, puteți lipi unul dintre următoarele fragmente de cod:

Opțiunea 1: Restricționarea accesului la fișierele media pentru utilizatorii WordPress non-admin

Acest cod verifică dacă utilizatorul curent nu este administrator. Dacă nu este administrator, filtrează biblioteca media pentru a afișa doar fișierele pe care utilizatorul le-a încărcat personal.

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

Acest lucru înseamnă că utilizatorii obișnuiți pot vedea și gestiona doar propriile fișiere media, în timp ce administratorii pot vedea și gestiona în continuare toate fișierele.

Opțiunea 2: Restricționarea accesului la fișierele media pentru utilizatorii WordPress fără permisiuni de editare a postărilor

Acest cod este perfect dacă doriți ca Editorii și Administratorii să gestioneze toate fișierele media, în timp ce restricționați Autorii și Contributorii doar la propriile încărcări.

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

Funcționează verificând dacă un utilizator are permisiunea edit_others_posts, care este o capacitate pe care Editorii o au în mod implicit, dar Autorii nu.

Apoi, derulați în secțiunea „Inserare”. WPCode poate adăuga codul dvs. în diferite locații, cum ar fi după fiecare postare, numai pe frontend sau numai în administrator.

Pentru a utiliza codul PHP personalizat pe întregul site web WordPress, faceți clic pe „Inserare automată” dacă nu este deja selectat. Apoi, deschideți meniul derulant „Locație” și alegeți „Rulează peste tot”.

Rularea codului PHP personalizat pe site-ul dvs. web folosind WPCode

După aceea, sunteți gata să derulați în partea de sus a ecranului și să faceți clic pe comutatorul „Inactive” pentru ca acesta să devină „Active”.

În final, faceți clic pe „Salvare fragment” pentru a face fragmentul PHP live.

Cum să restricționați accesul la fișierele media folosind cod

Acum, utilizatorii vor avea acces doar la fișierele pe care le încarcă în biblioteca media WordPress.

Întrebări frecvente

Iată câteva dintre cele mai frecvente întrebări pe care le primim despre organizarea încărcărilor media în WordPress.

Este sigur să adăugați cod personalizat pe site-ul meu WordPress?

Adăugarea de cod direct în fișierul functions.php al temei dvs. poate fi riscantă. O mică greșeală de scriere sau o eroare ar putea cauza probleme sau chiar face site-ul dvs. inaccesibil.

Acesta este motivul pentru care recomandăm cu tărie utilizarea pluginului WPCode. Acesta creează un strat sigur pentru adăugarea de fragmente, astfel încât să nu fie nevoie să vă faceți griji că veți strica ceva.

Va afecta acest lucru performanța site-ului meu web?

Deloc. Fragmentul de cod pe care l-am furnizat este foarte ușor și rulează eficient.

Adaugă doar o verificare simplă atunci când un utilizator accesează biblioteca media, deci nu va încetini site-ul dvs. pentru vizitatori.

Pot restricționa accesul media pentru anumite roluri de utilizator?

Da, absolut! Codul poate fi personalizat cu ușurință pentru a viza un rol specific de utilizator. De exemplu, dacă doriți ca această restricție să se aplice doar utilizatorilor cu rolul „Autor”, puteți folosi următorul fragment în schimb:

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

Aflați mai multe moduri de a gestiona fișierele WordPress

Pe lângă restricționarea încărcărilor media în WordPress, s-ar putea să doriți să consultați și ghidurile de mai jos pentru a vă gestiona mai bine fișierele:

Sperăm că acest articol v-a ajutat să organizați mai bine încărcările media de către utilizatori pe site-ul dvs. WordPress. În continuare, puteți consulta selecția noastră de experți a celor mai bune pluginuri de slider WordPress și ghidul nostru despre cum să încărcați ușor imagini în WordPress.

Dacă ți-a plăcut acest articol, te rugăm să te abonezi la canalul nostru de YouTube pentru tutoriale video WordPress. Ne poți găsi, de asemenea, pe Twitter și Facebook.

Dezvăluire: Conținutul nostru este susținut de cititori. Acest lucru înseamnă că dacă faceți clic pe unele dintre linkurile noastre, este posibil să câștigăm un comision. Vedeți cum este finanțat WPBeginner, de ce contează și cum ne puteți susține. Iată procesul nostru editorial.

Cel mai bun instrumentar WordPress

Obține acces GRATUIT la instrumentarul nostru - o colecție de produse și resurse legate de WordPress pe care fiecare profesionist ar trebui să le aibă!

Interacțiuni cu cititorii

13 CommentsLeave a Reply

  1. Oricine caută o actualizare ar putea lua în considerare următoarele, care rezolvă problemele legate de listă și grilă

    // Pentru vizualizarea listei
    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);
    }
    }
    }

    // Pentru vizualizare grilă
    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. Pluginul funcționează, dar dacă comutați la „upload.php?mode=list”, este posibil să vedeți din nou toate mediile. Funcționează doar în modul grilă

  3. Uimitor! Funcționează!

    Dar dacă folosiți aplicația WordPress instalată de pe mobil, toți utilizatorii pot accesa în continuare întreaga bibliotecă media. Există soluții?

    Ajutorul tău este foarte apreciat!

    • Nu avem o soluție pentru aplicație în acest moment, dar cu siguranță vom fi atenți.

      Admin

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

      Admin

  4. Caut o modalitate prin care utilizatorii să încarce direct de pe PC-ul lor, în loc să meargă la pagina media

  5. S-ar putea să nu fie postarea la care ar trebui să pun această întrebare, dar....

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

    Profesor-username1- media (vezi doar fișierele media ale username1)
    Profesor-username2-media (vezi doar fișierele media ale username2)

  6. În loc de:

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

    UTILIZARE:

    !current_user_can(‘administrator’)

    Deoarece, dacă, de exemplu, folosiți pluginul „Editor de roluri utilizator”, ați putea dori să permiteți utilizatorului curent să poată activa pluginuri ȘI/SAU să editeze alte postări.

    Just a thought, works for me :)

    Mulțumesc pentru postare!

  7. Postare bună.

    Și există o modalitate de a interzice încărcarea fișierelor direct în biblioteca media și de a forța utilizatorii (cu excepția administratorilor) să folosească butonul Adăugare media din editorul de postări/pagini?

Lasă un răspuns

Vă mulțumim că ați ales să lăsați un comentariu. Vă rugăm să rețineți că toate comentariile sunt moderate conform politicii noastre de comentarii, iar adresa dvs. de e-mail NU va fi publicată. Vă rugăm să NU folosiți cuvinte cheie în câmpul nume. Să avem o conversație personală și semnificativă.