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.

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.

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”.

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”.

Î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”.

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.

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:
- Cum să redenumiți imagini și fișiere media în WordPress
- Cele mai bune pluginuri Dropbox pentru WordPress (Selecții de experți)
- Cum să creezi dimensiuni suplimentare pentru imagini în WordPress
- Cum să impui nume de fișiere curate pentru imagini în WordPress (Metodă ușoară)
- Cum să curățați biblioteca media WordPress
- Cum să schimbați locația implicită de încărcare a fișierelor media în WordPress
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.
Noel Williams
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;
}
Suport WPBeginner
Thank you for sharing this
Admin
Bruno
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ă
Suport WPBeginner
Thank you for sharing this information
Admin
nathan
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!
Suport WPBeginner
Nu avem o soluție pentru aplicație în acest moment, dar cu siguranță vom fi atenți.
Admin
Alvaro Gomez
Thank you for mentioning my plugin
Suport WPBeginner
Thank you for creating the plugin and placing it on the WordPress.org repo
Admin
Daniel
Caut o modalitate prin care utilizatorii să încarce direct de pe PC-ul lor, în loc să meargă la pagina media
kim
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)
Hugh
Î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!
Peter
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?
Suport WPBeginner
Salut Peter,
Da, există. Puteți utiliza pluginul Adminimize pentru a ascunde linkul Media din bara de administrare WordPress pentru toate rolurile de utilizator, cu excepția administratorilor.
Admin