WordPress'te Medya Kitaplığınızdan Kullanılmayan Görselleri Nasıl Kaldırırsınız?


Web siteniz bir süredir yayındayken, artık gerekli olmayan ama hala var olan şeylerin olması normaldir. En sinir bozucu örneklerden biri, artık kullanılmayan ancak WordPress'inizde yer kaplamaya devam eden resimlerdir.

Artık yazılarınızda, sayfalarınızda veya eskimiş herhangi bir içerik türünde kullanmadığınız bu görseller sunucunuzda barınarak kaynak ve depolama alanı israfına neden olur. Onlarla yapabileceğiniz en iyi şey, onları tekrar kullanmayacaksanız ortadan kaldırmaktır. Ama onları nasıl bulabilir ve hiçbir yerde kullanılmadıklarından emin olabilirsiniz? Hadi onu görelim…

Başlamadan önce

WordPress'inizden artık kullanılmayan görüntüleri silmek istiyorsanız, yapmanız gereken ilk şey, wp-content klasöründeki medya dosyaları da dahil olmak üzere web sitenizin yedek bir kopyasını oluşturmaktır.

Medya kitaplığına yüklediğiniz resimler wp-content/uploads/ içinde saklansa da, dosyaları yüklemek için bir eklenti kullanırsanız farklı bir klasörde olmaları mümkündür. Bu nedenle, yalnızca wp-content/uploads değil, WordPress veritabanınızın ve wp-content klasöründeki tüm dosyaların yedek bir kopyasına sahip olduğunuzdan emin olun.

Yedeklemeyi oluşturduktan sonra aşağıdaki adımlarla devam edebiliriz…

WordPress'te Yetim Görüntüleri Algıla

WordPress web sitenizdeki herhangi bir içerikte artık kullanılmayan resimleri tespit etmenin birkaç yolu vardır. En etkili olanı, bunları WordPress veritabanında aramaktır.

Bunun için WordPress medya kitaplığına yüklediğiniz resimlerin wp_posts tablosunda bir yazı veya wp_posts gibi saklandığını bilmeliyiz. Bunları bu tabloda depolanan diğer içeriklerden ayıran şey, post_type sütununda ek değerine sahip olmalarıdır.

Bu arada, önemli bir not: Eğer veritabanları hakkında bilginiz yoksa, bundan sonra ne yapacağınıza dikkat etmeniz, veritabanının bir yedeğini almanız ve her şeyi açıkladıkları bu WordPress Codex makalesine göz atmanız en iyisidir. daha fazla detay.

Neredeydik? Ah evet: WordPress'inizde kullanılmayan tüm resimleri bulmak istiyoruz. Bunu tanımlamak yapmaktan daha kolay ama merak etmeyin adım adım ve basit bir şekilde açıklamaya çalışacağız.

Tek yapmamız gereken, WordPress MySQL veritabanında çalıştırmak için SQL dilinde bir sorgu yazmak. Web sitenizin veritabanına nasıl erişeceğinizi bilmiyorsanız, bunun nasıl yapılacağına ilişkin talimatlar için barındırma sağlayıcınızla iletişime geçin. Size bir phpMyAdmin'e erişim sağlarlarsa, sorun değil

Çalıştırmanız gereken sorgu şudur:

Hadi parçalayalım.

Yaptığımız ilk şey, belirli bir tablonun tüm belirli satırlarını seçmek için bir SELECT ifadesi ile başlamaktır. 2. satırda yıldız, her satırda "tüm sütunları" istediğimiz anlamına gelir.

3. ve 4. satırlar ilgilendiğimiz tabloları gösterir. Bu durumda, söylediğim gibi wp_posts içinde saklanan WordPress eklerini seçmek istiyoruz, bu yüzden kullanacağımız tablo bu.

5. satırdan itibaren, WHERE ifadesi, istediğimiz satırları filtrelemek ve gerisini hariç tutmak için koşullar eklememize izin verir. 6. ve 14. satırlar arasındaki her koşul, tüm koşulların bir kerede karşılanması gerektiğini göstermeye yarayan AND komutuyla ayrılır. Bir satır tüm WHERE koşullarını karşılamıyorsa, SELECT sorgusunun çıktısında döndürülmez.

6. satırdaki ilk koşul, yalnızca post_type sütunundaki değeri ek olan satırları almak istediğimizi tanımlar. Daha önce de söylediğim gibi, yazılar ve sayfalar diğer içeriklerin yanı sıra wp_posts tablosunda da saklanır. Bu koşulla sadece görüntüleri alacağız.

WordPress, her ek için, bunun bir sayfa bağlamında mı yoksa post_parent sütunu kullanılarak mı yüklendiğini saklar. Bu nedenle, 8. satırın koşulu, yalnızca post_parent olmayan ekleri almamızı sağlar (yani, herhangi bir sayfaya veya gönderiye bağlı değildirler).

Öte yandan, bir gönderi veya sayfanın öne çıkan resmi olarak bir resim seçersek, WordPress _thumbnail_id tablosunda wp_postmeta anahtarıyla bir meta veri satırı oluşturur ve değer olarak ek resmin tanımlayıcısını ayarlar. Sorgunun 10. satırında, tanımlayıcısı wp_postmeta _thumbnail_id değeri olarak görünmeyen görüntüleri alıyoruz.

12. satır, URL'si gönderilerin veya sayfaların içeriğinde görünmeyen resimleri filtrelemek için bir koşul tanımlar. Yani, içeriğin içinde görselin URL'si görünüyorsa, görselin hala kullanışlı olduğunu ve bu nedenle silinmemesi gerektiğini varsayıyoruz. Resmin URL'sinin guid tablosunun wp_posts sütununda göründüğünü unutmayın.

Son olarak, resimlerin URL'lerini wp_postmeta tablosunun satırlarına koyan bir eklenti kullanmış olabilirsiniz. 14. satırın durumu, bu özel durumu tespit etmemizi sağlar.

Ve bu kadar! Bu SQL sorgusunu çalıştırmak, sitenizin herhangi bir yerinde kullanılmadığı iddia edilen tüm resimleri döndürür.

Yetim görüntüleri ararken yanlış pozitifler olabileceğini unutmayın. Yani, kullanılmamış olarak işaretlenen ancak aslında WordPress'te kullanılan resimler. Bunun nedeni, kendi tablolarını tanımlayan ve orada resimlerinize referanslar tutan eklentiler kullanabilmenizdir. Durumunuz buysa, bu durumları kapsayacak şekilde ek koşullar ekleyerek sorguyu uyarlamanız gerekir.

WordPress'te Yetim Görüntüleri Kaldırın

Artık WordPress'te potansiyel olarak kullanılmayan görsellere sahip olduğumuza göre, sonuçlara bakmalı ve listelediğimiz tüm görsellerin kullanılıp kullanılmadığını görmeliyiz. Ne bulduğumuza bağlı olarak, daha önce söylediğimiz gibi daha fazla koşul ekleyerek sorguyu iyileştirebiliriz. Her şey doğru görünüyorsa, devam edebilirsiniz.

WordPress'te bir eki silmek için burada açıklanan wp_delete_attachment işlevine sahibiz. Belgelere bakarsanız, bu işlevin ek tanımlayıcısını ve silmeyi zorlamak mı yoksa sadece çöpe atmak mı istediğinizi belirten bir Boolean parametresi aldığını göreceksiniz.

WordPress'te bu işlevi çağırdığınızda, eki ve olası yorumlar, sınıflandırmalardaki görünüm, ilgili meta veriler ve en önemlisi wp-content klasöründe depolanan görüntü dosyaları dahil tüm ilişkili bilgileri siler.

PHP'de kullanacağımız wp_delete_attachment komutlarının listesini almak için, önceki sorgunun 2. satırını, SELECT sorgusunun döndürdüğü şey istediğimiz komutu oluşturan karakter dizisi olacak şekilde değiştirmemiz yeterli. Sorgu tarafından döndürülen her satır için bir tane. Sonuçları burada görebilirsiniz:

Kullanılmayan görüntüleri algılamak ve bunları WordPress'te silen PHP kodunu almak için SQL talimatı.
Kullanılmayan görüntüleri algılamak ve bunları WordPress'te silen PHP kodunu almak için SQL talimatı.

Şimdi tüm bu talimatları kopyalamanız ve örneğin temanızın functions.php dosyasına yapıştırmanız ve web sitenizi ziyaret etmeniz yeterlidir. Bu, bu talimatların yürütülmesine neden olacak ve WordPress'inizden yetim kalmış görüntüleri silecektir. Bundan sonra, daha önce yapıştırılan talimatları kaldırın çünkü artık gerekli olmayacaklar.

Web sitenizin hala mükemmel çalıştığını ve ilgili resimleri silmediğinizi kontrol etmeyi unutmayın. Bir şeyler ters giderse endişelenmeyin: veritabanınızın ve wp-content klasörünüzün bir yedeğine sahip olmalısınız, böylece web sitenizi önceki durumuna geri yükleyebilmelisiniz.

SQL ve veritabanı ile ilgili sorunlarınız varsa veya burada anlattıklarımın hiçbirini anlamadıysanız, önce aşağıya bir yorum yazarak bana bildirin. Bundan sonra Media Cleaner gibi bir eklenti kullanmayı deneyin. Elde edeceğiniz nihai sonuç, bu gönderide gördüklerimize çok benzer olmalıdır.

Gary Chan tarafından Unsplash'ta öne çıkan görsel .

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

Divi's Theme Builder ile Özel Global Başlık Nasıl Oluşturulur

Artık Tema Oluşturucu burada olduğuna göre, web sitenizi A'dan Z'ye kurmanıza yardımcı olacak yeni eğitimlere dalmak için sabırsızlanıyoruz. Buna Divi'nin yerleşik seçeneğini kullanarak özel başlıklar oluşturma da dahildir. Bu eğitimde Divi's Theme Builder'ı kullanarak global bir başlık oluşturmaya odaklanacağız. Bu sayfaya veya gönderiye farklı bir başlık atamadıysanız, web sitenizin her yerinde genel bir başlık görünecektir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir