iskiepiai.lt

Nenaudojamų paveikslėlių valymas

Užsakyti

1. Įdiegimas ir licencijos aktyvavimas

  1. Įdiekite ir aktyvuokite įskiepį per WordPress įskiepių valdymą. Papildomų įskiepių nereikia – WooCommerce ir WPML palaikomi, bet neprivalomi.

  2. Administravimo meniu atsiras skiltis Medijos valymas.

  3. Eikite į Medijos valymas > Licencija, įveskite gautą licencijos raktą ir spauskite „Aktyvuoti licenciją“. Tai būtina norint gauti atnaujinimus.

Prieš pirmą masinį trynimą būtinai pasidarykite pilną svetainės ir duomenų bazės atsarginę kopiją.


2. Rekomenduojama eiga pirmą kartą

  1. Nustatymuose įsitikinkite, kad įjungta šiukšliadėžė (numatytai įjungta).

  2. Paleiskite skenavimą.

  3. Peržiūrėkite grupę „Nenaudojami“ ir keliems failams paspauskite „Gilus patikrinimas“, kad įsitikintumėte rezultatų teisingumu.

  4. Pradėkite nuo nedidelės porcijos (20–50 failų) ir patikrinkite svetainę.

  5. Tada trinkite likusius.


3. Skenavimas

Medijos valymas > 1. Skenavimas > „Pradėti skenavimą“

  • Skenavimas vyksta etapais: medijos biblioteka, įrašai, papildomi laukai, nustatymai, kategorijos, vartotojų laukai, komentarai, WPML vertimai, viešų puslapių HTML, uploads katalogo failai ir galutinė analizė.

  • Kiekviena AJAX užklausa dirba tik kelias sekundes (numatyta 15 s), todėl serverio resursai neišnaudojami. Progreso juosta rodo etapą ir apdorotų eilučių kiekį.

  • Skenavimą galima nutraukti, o uždarius naršyklę ir grįžus – jis tęsiamas nuo tos vietos, kur buvo sustota.

  • Didelėse parduotuvėse pirmas skenavimas gali užtrukti nuo kelių minučių iki kelių dešimčių minučių.


4. Rezultatai

Medijos valymas > 2. Rezultatai – rezultatai suskirstyti į skirtukus:

  • Nenaudojami – yra medijos bibliotekoje, nepriskirti jokiam įrašui ir niekur nerasti. Saugu trinti.

  • Galimai naudojami – rasta netiesioginė nuoroda (pvz., skaitinė reikšmė neaiškiame lauke) arba failas įkeltas visai neseniai. Trinti tik patikrinus.

  • Failai be įrašo bibliotekoje – failas guli serveryje, bet medijos bibliotekoje jo nėra ir niekur nenaudojamas.

  • Likusios miniatiūros – dydžių variantai (foto-300x200.jpg), kurių WordPress nebežino.

  • Įrašai be failo – bibliotekoje yra įrašas, bet failo serveryje nėra; trinamas tik tuščias įrašas.

  • Naudojami ir Apsaugoti – netrinami.

Stulpelyje „Kur rasta“ matote konkrečias vietas su nuorodomis į įrašo redagavimą arba į puslapį.


5. Gilus patikrinimas

Kiekvienos eilutės mygtukas „Gilus patikrinimas“ (arba „Gilus patikrinimas pažymėtiems“) atlieka tiesioginę paiešką duomenų bazėje:

  • pagal failo pavadinimą be plėtinio – todėl randa ir visas miniatiūras (foto-300x200.jpg, foto-scaled.jpg);

  • pagal wp-image-ID ir "id":ID;

  • lentelėse posts, postmeta, options, termmeta, usermeta, comments.

Radus nuorodą, statusas iškart pakeičiamas į „naudojamas“ ir failo trinti nebeleidžiama.


6. Trynimas

  • Ištrinti pažymėtus“ – trinami tik pažymėti varnele.

  • Ištrinti visus šiame sąraše“ – trinami visi filtrą atitinkantys failai, net jei jų tūkstančiai.

  • Trynimas vyksta porcijomis (numatyta 20 failų vienu kartu) su progreso juosta. Kartu su paveikslėliu ištrinamos visos jo miniatiūros, -scaled versija, originalas ir redagavimo atsarginės kopijos.


7. Darbas fone

  • Mygtukai „Skenuoti fone“ ir „Trinti fone“ paleidžia darbą serveryje – naršyklę galima uždaryti, kompiuterį išjungti.

  • Pagrindinis variklis – neblokuojanti užklausa: kiekvienas ciklas (numatyta 20 s) baigdamas pasikviečia kitą. WP-Cron veikia kaip apsauga, o kiekvienas administravimo puslapio atidarymas patikrina, ar darbas nesustojo.

  • Vienu metu vykdomas tik vienas darbas – naudojamas užraktas duomenų bazės lygmenyje.

  • Jei svetainėje nustatyta DISABLE_WP_CRON, rekomenduojama serveryje turėti sisteminį cron, kviečiantį wp-cron.php kas 5 min.


8. Šiukšliadėžė

Medijos valymas > 3. Šiukšliadėžė

  • Kiekvienas ištrintas paveikslėlis su visomis miniatiūromis pirma perkeliamas į wp-content/uploads/cump-quarantine/, o medijos bibliotekos įrašas išsaugomas atkūrimui.

  • Matote peržiūrą (failas atiduodamas tik teises turinčiam vartotojui), kodėl failas buvo ištrintas, jo dydį, trynimo datą ir kada bus pašalintas visam laikui.

  • Veiksmai: Atkurti (grąžina ir failus, ir medijos įrašą su tuo pačiu ID), Trinti visam laikui, masinis atkūrimas ir Ištuštinti šiukšliadėžę.

  • Praėjus nustatytam dienų skaičiui (numatyta 30) šiukšliadėžė išsivalo automatiškai.


9. Žurnalas

Medijos valymas > 4. Žurnalas – visa trynimų istorija, atlaisvinta vieta ir CSV eksportas. Senesni nei nustatyta įrašai (numatyta 90 d.) šalinami automatiškai; 0 išjungia valymą. Įrašai, kurių failai dar guli šiukšliadėžėje, nešalinami niekada.


10. Automatinis valymas trinant įrašą ar prekę

  • Numatytai išjungta. Įjungus, galutinai ištrynus prekę ar įrašą ištrinami ir jo paveikslėliai (perkėlus į šiukšlinę niekas netrinama).

  • Apimtis pasirenkama: tik per tą įrašą įkelti failai; papildomai pagrindinė nuotrauka ir WooCommerce prekės galerija (rekomenduojama); arba viskas, kas rasta turinyje ir laukuose.

  • Prieš trinant kiekvienas paveikslėlis patikrinamas, ar jo nenaudoja kitas įrašas, laukas ar nustatymas.

  • Galima apriboti konkrečiais įrašų tipais, pvz. product, product_variation.


11. Tvarkaraštis

  • Pasirinkite Kasdien / Kas savaitę / Kas mėnesį ir valandą (rekomenduojama naktis). Skenavimas vykdomas fone tomis pačiomis porcijomis.

  • Atskirai įjungiamas automatinis trynimas – nurodykite, kurias grupes trinti. Failai keliauja į šiukšliadėžę, todėl juos dar galima atkurti.

  • Rekomenduojama kartu įjungti ataskaitą el. paštu: joje nurodoma, kiek ko rasta, kiek pašalinta ir kiek vietos atlaisvinta.


12. „Niekada netrinti“ sąrašas

Nustatymuose galima nurodyti failus, kurių jokia programa nerastų (adresas įklijuotas į el. laiškų šabloną ar išorinę svetainę). Palaikomi formatai:

  • 123 – medijos įrašo ID;

  • logotipas.png – tikslus failo pavadinimas;

  • logo-*.png – pavadinimo šablonas;

  • 2019/brand/* – visas katalogas su pakatalogiais.

Greičiausias būdas papildyti – mygtukas „Apsaugoti“ rezultatų lentelėje. Svetainės logotipas, favicon, WooCommerce vietaženklis ir antraštės paveikslėlis apsaugoti automatiškai.


13. Statusas medijos bibliotekoje

Medija > Biblioteka (sąrašo rodinys) atsiranda stulpelis „Panaudojimas“ ir filtras, leidžiantis parodyti, pavyzdžiui, tik nenaudojamus failus. Duomenys imami iš paskutinio skenavimo. Stulpelį galima išjungti nustatymuose.


14. WP-CLI

Labai didelėms svetainėms patogiau dirbti komandine eilute:

wp media-cleaner scan
wp media-cleaner status
wp media-cleaner list --status=unused --limit=50
wp media-cleaner delete --status=unused --dry-run
wp media-cleaner delete --status=orphan_thumb
wp media-cleaner restore 42


15. Kaip veikia atpažinimas

Kiekvienam paveikslėliui registruojami trys nuorodų tipai: pagal ID (wp-image-123, [gallery ids="1,2,3"], Gutenberg blokų "id":123, _thumbnail_id, prekės galerija), pagal normalizuotą pavadinimą (foto-300x200.jpg ir foto-scaled.jpg suvedami į foto.jpg) ir pagal tikslų pavadinimą (kad senos miniatiūros būtų atpažintos kaip nereikalingos).

Sprendimai priimami saugia kryptimi: kilus bent menkiausiai abejonei failas žymimas kaip naudojamas arba „galimai naudojamas“, o ne siūlomas trinti.

Žinomi apribojimai

  • Jei du skirtingų katalogų failai turi tą patį pavadinimą, vieno panaudojimas apsaugo abu – sąmoningas pasirinkimas saugumo naudai.

  • Jei paveikslėlis įterpiamas tik JavaScript kodu iš išorinio šaltinio, jo aptikti neįmanoma.

  • Viešų puslapių tikrinimas neveiks, jei svetainė uždaryta slaptažodžiu (HTTP auth) arba „coming soon“ režimu.


Sauga ir duomenys

  • Trinami tik failai, esantys uploads kataloge (tikrinama per realpath), o prieš trinant kiekvieno failo statusas patikrinamas iš naujo.

  • Šiukšlinėje esančiam įrašui priskirti paveikslėliai netrinami – įrašą dar galima atkurti.

  • Karantino katalogas apsaugotas .htaccess, o peržiūros paveikslėlį atiduoda tik teises turintis vartotojas.

  • Visi veiksmai reikalauja manage_options teisės ir nonce patikros.

  • Įskiepis naudoja tik nuosavas duomenų bazės lenteles ir nieko nerašo į wp_options. Įjungus atitinkamą nustatymą, pašalinus įskiepį visos lentelės ištrinamos. Tinklo (multisite) atveju apeinamos visos tinklo svetainės.