Bagaimana cara menghapus semua gambar yang TIDAK DIGUNAKAN dari direktori unggahan saya?


20

Saya mencoba membersihkan folder unggahan saya karena sekarang mulai memakan terlalu banyak ruang di server saya.

Saya telah mencoba menggunakan plugin untuk mencapai tujuan ini seperti DNUI dan Gambar Pembersihan tetapi plugins ini tidak bisa berfungsi atau dalam kasus DNUI (yang telah diperbarui baru-baru ini dan berfungsi) tidak mencapai hasil persis seperti yang saya kejar. Ini karena situs saya menggunakan Woocommerce dan sebuah tema yang keduanya menggunakan gambar di tempat lain, bukan hanya pos atau halaman seperti header, footer, dan galeri. Tampaknya seolah-olah WC menggunakan plugin Lightbox miliknya sendiri yang disebut Pretty Photo yang merupakan tempat gambar yang dirinci sebagai "tidak digunakan" oleh DNUI.

Saya tahu bahwa ini sedikit bertanya tetapi saya bertanya-tanya apakah ada yang bisa mengarahkan saya ke arah yang benar? Saya bukan pengembang, jadi mungkin seharusnya tidak memposting di sini, tapi saya bisa menyelesaikan masalah dengan waktu dan tekad. Saya telah melihat skrip di situs ini yang mencapai hasil yang sama dengan plugin DNUI tetapi tidak ada yang memperhitungkan penggunaan gambar lain (jika itu mungkin?). Bantuan apa pun akan sangat dihargai.


2
Saya ingin melakukan hal yang sama, tetapi yang membuat saya khawatir adalah bagaimana mendefinisikan yang tidak digunakan . Sebagai contoh, seorang penulis mungkin telah mengunggah gambar ke post draft, dan kemudian membuat post draft lain, menempelkan konten, dan postingan itu diterbitkan. Ini akan berarti bahwa gambar ditugaskan ke draft postingan, bukan postingan yang diterbitkan. Mungkin skrip yang memeriksa semua posting dan memeriksa URL gambar untuk melihat gambar mana yang telah digunakan dan tidak. Semoga kami punya jawaban yang bagus.
Christine Cooper

Sayangnya, semakin rumit definisi Anda tentang "tidak digunakan", semakin kecil kemungkinan Anda akan menemukan solusi yang tepat untuk itu. Berapa banyak (dalam hitungan dan ukuran) gambar yang Anda bicarakan?
Paling lambat

Hai Rarst, terima kasih telah menjawab, situs ini telah aktif sekitar 5 tahun sekarang dan sangat bergantung pada gambar, dengan beberapa perubahan tema dan plugin. Saya percaya ada ribuan gambar yang tidak terpakai. Dan karena jumlah perubahan ukurannya sangat bervariasi. Saya telah menggunakan Thumbnail Force Regenerate untuk mencoba dan mengurangi angka ini dan ini telah berhasil sampai batas tertentu tetapi plugin ini sering kali keluar karena jumlahnya. Ini juga meningkatkan CPU di server saya ke tingkat yang tidak bisa dijalankan jika saya membiarkannya diaktifkan.
G-Olly

Saya menyadari kompleksitas masalahnya dan saya telah menggunakan perpustakaan media untuk mencoba dan menunjukkan dan menghapus gambar-gambar ini. Sayangnya saya telah menemukan bahwa itu juga sering daftar digunakan sebagai tidak terpakai dan sebaliknya, karena itu adalah proses yang sangat melelahkan tapi saya punya hidung saya ke batu asah sekarang.
G-Olly

1
Jika saya dapat memasukkan dua sen saya, untuk beberapa jenis situs web saya pikir masalahnya dapat diselesaikan secara empiris. Untuk situs ini webcrawlers mengunjungi setiap halaman di situs. Dari log server Anda, dapatkan daftar url dari semua halaman yang dikunjungi. Parsing halaman ini menggunakan DOMDocument dan dapatkan semua elemen <img> dan srcs mereka. Masalah dengan pendekatan ini adalah jika Javascript secara dinamis menghasilkan hrefs dan SRC.

Jawaban:


4

Menghapus gambar menggunakan plugin:

Anda dapat menggunakan plugin ini, itu akan mencari basis data Anda dan melihat apakah gambar dimasukkan ke dalam pos apa pun (dalam konten, sebagai gambar unggulan, di bidang khusus apa pun, di mana saja ...) atau sebagai latar ...

Jika gambar tidak digunakan di mana saja, itu akan memberi Anda opsi untuk menghapusnya. Anda akan mendapatkan daftar semua gambar di situs Anda yang tidak digunakan lagi, sehingga Anda dapat menghapusnya dengan aman.

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

dan ini, masih berfungsi, bahkan sudah ketinggalan zaman

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


Menghapus gambar secara manual:

Anda juga dapat mencari di perpustakaan media Anda untuk gambar-gambar yang tidak terikat pada posting dan halaman.

Pergi ke perpustakaan media dan klik "tidak terikat" itu akan menampilkan semua gambar yang dapat ditampilkan di bagian lain dari situs Anda atau tidak digunakan.


1
Masalah dengan gambar yang tidak dilampirkan pada posting adalah bahwa mereka dapat digunakan di tempat lain - misalnya jika Anda memiliki bidang khusus yang menggunakan pengunggah gambar berdasarkan pengunggah Media asli Wordpress, tergantung pada bagaimana tema itu berkode, gambar yang diunggah di sana tidak terpasang ke pos mana pun (di basis data Anda). Masih ide yang valid.
Bruno Monteiro

Saya akan @BrunoMonteiro kedua di sini. Sangat mungkin untuk memiliki gambar yang tidak dilampirkan pada posting.
BODA82

3

Tugas Cron / Terjadwal dan perayapan DB adalah teman Anda

Ini harus berupa plugin, Anda dapat menetapkannya dengan interval wp_cron, tidak jauh berbeda dengan yang disarankan di atas, tetapi dengan tambahan memeriksa bidang seperti 'post_content' (Anda perlu mengidentifikasi ini, tergantung pada lingkungan WP Anda) untuk URI / URL gambar. Ini berpotensi sangat memakan waktu / membebani proses sistem - secara realistis proses ini hanya perlu berjalan sekali sehari atau seminggu - dengan asumsi tidak ada alasan hukum / bisnis untuk berjalan lebih sering.

konfigurasi sumber DB master-slave memungkinkan proses ini secara signifikan kurang merugikan kinerja, tapi itu di luar ruang lingkup pertanyaan ini saya percaya.



1

Anda perlu memindai wp-content/uploadsfolder Anda untuk file yang diunggah, dan kemudian database Anda untuk referensi ke file-file itu, dan akhirnya mencocokkannya bersama. Apa yang tidak dapat dicocokkan harus aman untuk dihapus.

Pemindaian basis data adalah bagian yang sulit. Sebagian besar referensi file disimpan di dalam Media Library yang dapat Anda akses menggunakan fungsi WordPress standar / API. Tetapi apa yang terjadi pada file yang dihapus dari Perpustakaan Media tetapi masih dirujuk oleh posting? Atau file yang terhubung dengan plugin lain dengan cara yang berbeda?

Saya melakukan sejumlah besar tes dan dari apa yang saya kumpulkan, semua referensi file disimpan dalam format teks biasa (yaitu hanya sel tabel yang sama dengan jalur file atau URL), format HTML (yaitu konten tulisan), sebagai data serial, atau akhirnya sebagai objek JSON. Anda harus memindai seluruh database dan mencoba menebak format apa yang digunakan dalam setiap sel. Tentu saja, mungkin ada cara-cara eksotis lain yang digunakan beberapa plugin untuk menyimpan referensi ke file mereka, tetapi itu hanya dapat ditangani berdasarkan kasus per kasus.

Akibatnya saya menulis sebuah plugin yang secara otomatis melakukan semua itu, karena saya membutuhkannya untuk beberapa situs web klien kami, dan menamakannya Theia Upload Cleaner . Ini bekerja dengan baik untuk saya, tetapi tentu saja Anda harus selalu membuat cadangan sebelum mencoba sesuatu seperti ini.


Pendekatan yang bagus ... Saya ingin tahu apakah Anda mengalami masalah dengan itu dengan semakin banyak konten / plugin / posting yang ditambahkan dari waktu ke waktu ...
jj_

Ada masalah di sana-sini, ya. Misalnya, untuk beberapa plugin Anda perlu mengecualikan tabel tertentu yang jika tidak dapat memperlambat banyak hal. Kami memang mencoba untuk secara otomatis mengecualikan dengan kata kunci tertentu, seperti tabel "log", tetapi tentu saja tidak menangkap semua kasus.
liviucmg
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.