Yüklenmemiş dizinimdeki KULLANILMAMIŞ resimleri nasıl silebilirim?


20

Şimdi sunucumda çok fazla yer kaplamaya başladıkları için yüklemelerimi temizlemeye çalışıyorum.

DNUI ve Temizleme Görüntüleri gibi bu sonuca ulaşmak için eklentileri kullanmaya çalıştım, ancak bu eklentiler ya işlenemiyor ya da DNUI'nin durumunda (son zamanlarda güncellendi ve çalışıyor) sonra olduğum kesin sonuçları elde edemiyor. Çünkü sitem Woocommerce ve sadece yazı veya üstbilgi, altbilgi ve galeri gibi sayfalar yerine başka yerlerdeki görüntüleri kullanan bir tema kullanıyor. WC, DNUI tarafından "kullanılmayan" olarak ayrıntılı olarak adlandırılan görüntülerin çağrıldığı Pretty Photo adlı kendi yerleşik Lightbox eklentisini kullanıyor gibi görünüyor.

Biraz soru olduğunu biliyorum ama birisinin beni doğru yöne yönlendirip yönlendiremeyeceğini merak ediyorum. Ben geliştirici değilim, bu yüzden muhtemelen burada yayınlamamalıyım, ama zaman ve kararlılıkla işleri halledebilirim. Bu sitede DNUI eklentisi ile aynı sonuçları elde eden komut dosyaları gördüm ancak diğer görüntü kullanımlarını dikkate alan hiçbir şey yok (mümkünse?). Herhangi bir yardım çok takdir edilecektir.


2
Aynı şeyi yapmak istedim, ama beni endişelendiren, kullanılmayanları nasıl tanımlayacağımız . Örneğin, bir yazar taslak bir gönderiye resim yükledikten sonra başka bir taslak gönderi oluşturmuş, içeriği yapıştırmış olabilir ve bu yayın yayınlanır. Bu, görüntülerin yayınlanan gönderiye değil taslak gönderiye atandığı anlamına gelir. Belki de tüm gönderileri inceleyen ve hangi resimlerin kullanıldığını görmek için resim URL'lerini kontrol eden bir komut dosyası. Umarım iyi bir cevabımız vardır.
Christine Cooper

Ne yazık ki "kullanılmayan" tanımınız ne kadar ayrıntılı olursa, bunun için uygun çözüm bulma olasılığınız o kadar az olur. Kaç (sayı ve boyutta) resimden bahsediyorsunuz?
Rarst

Merhaba Rarst, cevapladığınız için teşekkürler, site yaklaşık 5 yıldır aktiftir ve oldukça az sayıda tema ve eklenti değişikliği ile görüntüye bağımlıdır. Kelimenin tam anlamıyla 1000'ler kullanılmamış görüntü olduğuna inanıyorum. Ve değişikliklerin miktarı nedeniyle, boyutlar muazzam bir şekilde değişir. Bu sayıyı denemek ve azaltmak için Zaten Yeniden Oluşturma Küçük Resimleri'ni zaten kullandım ve bu bir ölçüde çalıştı, ancak bu eklenti genellikle miktar nedeniyle zaman aşımına uğradı. Ayrıca, etkin durumda bırakırsam sunucumdaki CPU'yu çalıştırılamaz bir düzeye yükseltir.
G-Olly

Sorunun karmaşıklığının farkındayım ve bu yüzden bu görüntüleri belirlemek ve silmek için medya kütüphanesini kullanıyorum. Ne yazık ki, sık sık kullanılmayan ve tam tersi olarak kullanılan listeler buldum, bu yüzden özenli yavaş bir süreç ama şimdi burnumu öğütme taşına aldım.
G-Olly

1
İki sentimi koyabilirsem, bazı web siteleri için problemin ampirik olarak çözülebileceğini düşünüyorum. Bu siteler için web tarayıcıları sitedeki her sayfayı ziyaret ediyor. Sunucu günlüğünüzden, ziyaret edilen tüm sayfaların URL'lerinin listesini alın. DOMDocument kullanarak bu sayfaları ayrıştırın ve tüm <img> öğelerini ve src'lerini alın. Bu yaklaşımla ilgili sorun, Javascript'in dinamik olarak hrefs ve srcs oluşturmasıdır.

Yanıtlar:


4

Eklenti kullanarak görüntüleri silme:

Bu eklentiyi kullanabilirsiniz, veritabanınızı arayacak ve görüntünün herhangi bir gönderiye (içerikte, özellikli görüntü olarak, herhangi bir özel alanda, herhangi bir yerde ...) veya arka plan olarak eklenip eklenmediğine bakacaktır ...

Görüntü hiçbir yerde kullanılmazsa, onu silme seçeneği sunar. Sitenizde artık kullanılmayan tüm resimlerin bir listesini alacaksınız, böylece onları güvenle silebilirsiniz.

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

ve bu, hala çalışıyor, modası geçmiş olsa bile

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


Görüntüleri manuel olarak silme:

Yayınlara ve sayfalara eklenmemiş resimler için medya kitaplığınızda da arama yapabilirsiniz.

Medya kitaplığına gidin ve "eklenmemiş" i tıklayın, sitenizin diğer bölümlerinde görüntülenebilecek veya kullanılmayan tüm resimleri görüntüler.


1
Herhangi bir gönderiye eklenmeyen görüntülerle ilgili sorun, başka bir yerde kullanılabilmeleridir - örneğin, temanın nasıl olduğuna bağlı olarak Wordpress'in yerel Medya yükleyicisine dayanan bir görüntü yükleyiciyi kullanan özel bir alanınız varsa kodlanmışsa, oraya yüklenen resim herhangi bir yayına eklenmez (veritabanınızda). Hala geçerli bir fikir.
Bruno Monteiro

Burada @BrunoMonteiro ikinci olurum. Bir gönderiye bağlı olmayan görüntülere sahip olmak tamamen mümkündür.
BODA82

3

Cron / Zamanlanmış görevler ve bir DB taraması arkadaşın

Bir eklenti olması gerekir, hatta yukarıda önerilenin aksine bir wp_cron aralığı atayabilirsiniz, ancak herhangi bir 'post_content' benzeri alanı kontrol ederek (bunları WP ortamınıza bağlı olarak tanımlamanız gerekir) resmin URI / URL'si için. Bunun, sistem süreçlerinde son derece zaman alıcı / vergilendirme potansiyeli vardır - gerçekçi olarak, daha sık çalışmak için başka yasal / ticari nedenler olmadığı varsayılarak, bu sürecin sadece günde veya haftada bir kez yapılması gerekir.

kaynağın bir master-slave DB konfigürasyonu, bu sürecin performans açısından daha az zarar görmesine izin verir, ancak bu sorunun kapsamının ötesinde olduğuna inanıyorum.



1

wp-content/uploadsYüklenen dosyalar için klasörünüzü ve daha sonra bu dosyalara yapılan başvurular için veritabanınızı taramanız ve sonunda bunları eşleştirmeniz gerekir. Eşleştirilemeyen öğelerin kaldırılması güvenli olmalıdır.

Veritabanı taraması zor kısımdır. Dosya referanslarının çoğu, standart WordPress işlevlerini / API'sını kullanarak erişebileceğiniz Medya Kitaplığı içinde saklanır. Ancak, Medya Kitaplığı'ndan kaldırılan ancak yine de gönderiler tarafından başvurulan dosyalara ne olur? Veya diğer eklentilerin farklı şekillerde bağlandığı dosyalar?

Önemli sayıda test yaptım ve ne topladığımdan, tüm dosya referansları ya düz metin biçiminde (yani dosya yoluna veya URL'ye eşit bir tablo hücresi), HTML biçiminde (yani bir yazının içeriği), serileştirilmiş veri veya son olarak JSON nesneleri olarak. Tüm veritabanını taramanız ve her bir hücrede hangi formatın kullanıldığını tahmin etmeye çalışmanız gerekir. Tabii ki, bazı eklentilerin dosyalarına referans tutmak için kullandığı başka egzotik yollar da olabilir, ancak bunlar yalnızca vaka bazında ele alınabilir.

Sonuç olarak, bazı müşterilerimizin web siteleri için ona ihtiyaç duyduğumdan ve otomatik olarak Theia Upload Cleaner olarak adlandırdığımdan, hepsini otomatik olarak yapan bir eklenti yazdım . Benim için iyi çalıştı, ama elbette böyle bir şey denemeden önce her zaman bir yedek almalısınız.


Hoş bir yaklaşım ... Zamanla eklenen daha fazla içerik / eklenti / gönderi ile herhangi bir sorunla karşılaşırsanız merak ediyorum ...
jj_

Burada ve orada sorunlar var, evet. Örneğin, bazı eklentiler için, aksi takdirde işleri önemli ölçüde yavaşlatabilecek belirli tabloları hariç tutmanız gerekir. "Günlük" tabloları gibi belirli anahtar kelimeler tarafından otomatik olarak hariç tutmaya çalışıyoruz, ancak elbette tüm durumları yakalamıyor.
liviucmg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.