Cum pot șterge toate imaginile NEUTILIZATE din directorul uploads?

10 iun. 2014, 18:26:29
Vizualizări: 77.5K
Voturi: 24

Încerc să curăț directoarele mele de uploads deoarece încep să ocupe prea mult spațiu pe server.

Am încercat să folosesc plugin-uri pentru a realiza acest lucru, cum ar fi DNUI și Cleanup Images, dar aceste plugin-uri fie nu funcționează, fie în cazul DNUI (care a fost actualizat recent și funcționează) nu oferă exact rezultatele pe care le doresc. Acest lucru se întâmplă deoarece site-ul meu folosește WooCommerce și o temă care utilizează imagini în alte locuri decât doar în articole sau pagini, cum ar fi headerele, footerele și galeriile. Se pare că WooCommerce folosește propriul plugin Lightbox încorporat numit Pretty Photo, de unde sunt apelate imaginile care sunt marcate ca "neutilizate" de către DNUI.

Știu că e mult cerut, dar mă întreb dacă cineva m-ar putea îndruma în direcția corectă? Nu sunt dezvoltator, probabil nici n-ar trebui să postez aici, dar pot să înțeleg lucrurile cu timp și determinare. Am văzut scripturi pe acest site care obțin aceleași rezultate ca plugin-ul DNUI, dar nimic care să ia în considerare alte utilizări ale imaginilor (dacă este măcar posibil?). Orice ajutor ar fi foarte apreciat.

7
Comentarii

Am vrut să fac același lucru, dar ceea ce mă îngrijorează este cum să definesc neutilizate. De exemplu, un autor poate fi încărcat imagini într-o postare draft, apoi a creat o altă postare draft, a copiat conținutul, iar acea postare a fost publicată. Acest lucru va însemna că imaginile sunt atribuite postării draft, nu postării publicate. Poate un script care să parcurgă toate postările și să verifice URL-urile imaginilor pentru a vedea care imagini au fost folosite și care nu. Sperăm să avem un răspuns bun.

Christine Cooper Christine Cooper
10 iun. 2014 19:14:37

Din păcate, cu cât definiția ta de "neutilizate" este mai elaborată, cu atât este mai puțin probabil să găsești o soluție potrivită pentru aceasta. Despre câte imagini (ca număr și dimensiune) vorbești?

Rarst Rarst
10 iun. 2014 20:48:23

Bună Rarst, mulțumesc pentru răspuns, site-ul este activ de aproximativ 5 ani și este foarte dependent de imagini, cu destul de multe schimbări de teme și plugin-uri. Cred că există literalmente mii de imagini neutilizate. Și din cauza cantității de schimbări, dimensiunile variază foarte mult. Am folosit deja Force Regenerate Thumbnails pentru a încerca să reduc acest număr și acest lucru a funcționat într-o oarecare măsură, dar acest plugin deseori se blochează din cauza cantității. De asemenea, crește CPU-ul de pe serverul meu la un nivel nefuncțional dacă îl las activat.

G-Olly G-Olly
11 iun. 2014 11:44:55

Îmi dau seama de complexitatea problemei și, prin urmare, am folosit biblioteca media pentru a încerca să identific și să șterg aceste imagini. Din păcate, am constatat că de multe ori listează imagini folosite ca nefolosite și invers, așa că este un proces anevoios, dar acum sunt concentrat pe rezolvarea lui.

G-Olly G-Olly
11 iun. 2014 12:06:12

Dacă pot să-mi spun și eu părerea, pentru unele tipuri de site-uri web cred că problema poate fi rezolvată empiric. Pentru aceste site-uri, roboții de indexare vizitează fiecare pagină. Din jurnalul serverului, obțineți lista tuturor URL-urilor paginilor vizitate. Analizați aceste pagini folosind DOMDocument și obțineți toate elementele <img> și src-urile lor. Problema cu această abordare apare dacă Javascript generează dinamic href-uri și src-uri.

User User
15 aug. 2014 15:44:24

Aproape toate aceste plugin-uri nu verifică imaginile ACF. Media Cleaner are o versiune pro care verifică ACF.

chiterry27 chiterry27
16 oct. 2019 20:43:16

Ar trebui să încerci plugin-ul WordPress Media Hygiene. Plugin-ul Media Hygiene elimină fișierele media neutilizate din biblioteca WordPress pentru a elibera spațiu, a reduce haosul și a îmbunătăți performanța serverului. Cu funcții precum ștergerea în masă și scanarea profundă a dosarelor, este un instrument esențial pentru găsirea și ștergerea imaginilor și fișierelor media neutilizate.

Link către plugin aici https://mediahygiene.com

Deepak Lakhara Deepak Lakhara
21 iul. 2023 13:21:18
Arată celelalte 2 comentarii
Toate răspunsurile la întrebare 5
2

Ștergerea imaginilor folosind un plugin:

Poți folosi acest plugin, care va căuta în baza ta de date și va verifica dacă o imagine este utilizată în vreun articol (în conținut, ca imagine reprezentativă, în orice câmp personalizat, oriunde...) sau ca fundal...

Dacă imaginea nu este folosită nicăieri, îți va oferi opțiunea de a o șterge. Vei primi o listă cu toate imaginile de pe site care nu mai sunt utilizate, astfel încât să le poți șterge în siguranță.

https://wordpress.org/plugins/dnui-delete-not-used-image-wordpress/

și acesta, încă funcționează, chiar dacă este învechit

https://wordpress.org/plugins/wordpress-uploaded-files-cleaner/


Ștergerea manuală a imaginilor:

De asemenea, poți căuta în biblioteca de media imagini care nu sunt atașate la articole sau pagini.

Accesează biblioteca de media și dă clic pe "neatașate" - va afișa toate imaginile care pot fi afișate în alte părți ale site-ului sau care nu sunt utilizate.

15 aug. 2014 10:32:21
Comentarii

Problema cu imaginile care nu sunt atașate la nicio postare este că ele pot fi folosite în altă parte - de exemplu, dacă ai un câmp personalizat care folosește un uploader de imagini bazat pe uploaderul Media nativ al WordPress, în funcție de cum a fost codată tema, imaginea încărcată acolo nu este atașată la nicio postare (în baza ta de date). Totuși, o idee validă.

Bruno Monteiro Bruno Monteiro
18 iun. 2015 16:20:49

Voi susține și eu ce a spus @BrunoMonteiro aici. Este perfect posibil să ai imagini care nu sunt atașate unei postări.

BODA82 BODA82
11 oct. 2015 04:46:06
0

Cron/Sarcini programate și o scanare a bazei de date sunt prietenii tăi

Ar trebui să fie un plugin, căruia i-ai putea atribui chiar un interval wp_cron, nu foarte diferit de cel sugerat mai sus, dar cu adăugarea verificării oricărui câmp de tip 'post_content' (va trebui să le identifici, în funcție de mediul tău WordPress) pentru URI/URL-ul imaginii. Acest proces are potențialul de a fi extrem de consumator de timp/resurse pentru procesele sistemului - realist, acest proces ar trebui să ruleze o dată pe zi sau pe săptămână - presupunând că nu există alte motive legale/afaceri care să necesite o rulare mai frecventă.

O configurație master-slave a bazei de date sursă ar face acest proces mult mai puțin dăunător din punct de vedere al performanței, dar cred că aceasta depășește domeniul de aplicare al acestei întrebări.

6 dec. 2015 16:47:47
0

Am încercat plugin-ul Image Cleanup și este cel mai bun, dar totuși este bine să faci o copie de rezervă mai întâi.

6 dec. 2015 17:48:13
2

Va trebui să scanați folderul wp-content/uploads pentru fișiere încărcate, apoi baza de date pentru referințe către acele fișiere, și în final să le potriviți împreună. Ce nu poate fi potrivit ar trebui să fie sigur de șters.

Scanarea bazei de date este partea complicată. Majoritatea referințelor către fișiere sunt stocate în Biblioteca Media, la care puteți accesa folosind funcțiile/API-ul standard WordPress. Dar ce se întâmplă cu fișierele care sunt eliminate din Biblioteca Media dar sunt încă referențiate de postări? Sau fișierele la care alte plugin-uri fac legături în moduri diferite?

Am efectuat un număr considerabil de teste și din câte am observat, toate referințele către fișiere sunt fie stocate în format text simplu (adică doar o celulă de tabel egală cu calea sau URL-ul fișierului), format HTML (adică conținutul unei postări), ca date serializate, sau în final ca obiecte JSON. Va trebui să scanați întreaga bază de date și să încercați să ghiciți ce format este folosit în fiecare celulă. Desigur, pot exista și alte metode exotice pe care unele plugin-uri le folosesc pentru a păstra referințe către fișierele lor, dar acestea pot fi tratate doar caz cu caz.

Ca urmare, am scris un plugin care face automat toate acestea, deoarece aveam nevoie de el pentru unele site-uri web ale clienților noștri, și l-am numit Theia Upload Cleaner. A funcționat bine pentru mine, dar desigur ar trebui să faceți întotdeauna o copie de rezervă înainte de a încerca ceva de genul acesta.

23 mar. 2016 20:19:10
Comentarii

Abordare interesantă... Mă întreb dacă ai întâmpinat vreo problemă cu ea pe măsură ce adaugi tot mai mult conținut / plugin-uri / articole în timp...

red-o-alf red-o-alf
13 iun. 2018 11:24:46

Da, există probleme din când în când. De exemplu, pentru unele plugin-uri trebuie să excluzi anumite tabele care altfel pot încetini considerabil procesul. Încercăm să excludem automat după anumite cuvinte cheie, cum ar fi tabelele "log", dar nu prinde toate cazurile, desigur.

liviucmg liviucmg
13 iun. 2018 17:21:39
0

Plugin-ul WordPress Media Cleaner este destul de bun - https://wordpress.org/plugins/media-cleaner/

Îmi place pentru că are suport pentru alte plugin-uri precum Advanced Custom Fields (ACF), Divi Builder, Visual Composer și Elementor. (Doar în versiunea plătită)

21 dec. 2019 23:53:50