WordPress’de Tüm Resimlere Otomatik Alt ve Title Ekleme

wordpress ucretsiz blog scripti Wordpress'de Tüm Resimlere Otomatik Alt ve Title Ekleme

Bildiğiniz üzere arama motoru optimizasyonu (SEO) için bazı önemli noktalar var ve bu noktaları atladığımızda sitemizin arama motorları ile olan bağını azaltmış oluyoruz. Yani arama motorlarını tavlamak için; sitemizin açılış hızına, url yapısına, robots.txt dosyasına, site haritasına, içeriğinin özgün olmasına, başlıkların içerikle uyumlu olmasına ve sitemizde gerekli yerlerde meta, keyword, description, alt, title etiketlerinin olmasına (dahasıda var ama..) özen gösteriyoruz.. Konumuzla bağlantılı kısımda dikkat ettiğimiz noktalardan ikisi; resimlerde kullandığımız alt ve title’lar oluyor.

DİKKAT! Yazı, 26 Aralık 2014 tarihinde yayınlanmıştır ve erişim sağladığınız tarihte güncelliğini yitirmiş olabilir.

WordPress scriptlerinde her daim site haritasına bu eklentiyi, resimlere otomatik alt ve title içinde bu eklentiyi kullanırdım. Kullanırdım diyorum çünkü “seo friendly images” eklentisi ile aram bozuldu. Eklenti ile tekrar barışana kadar elimde güzel bir alternatif olması için araştırmalara başladım. Sonuç olarak, onun kadar iyisini bulamadım ve alt, title işini kodlar ile halletmeye karar verdim. (Karar verdim ama işin altından kalkmamda kolay olmadı..)

Bu kod ne yapıyor? 

Aşağıdaki kod, konularınızdaki tüm resimlere alt, title etiketlerini ekliyor ve etiketlerin içerisinde mevcut konu başlığı yer alıyor. (İstenirse konu başlığı yerine resim ismi de gösterilebilir fakat uğraşamadım.) Kodu aynen alıyor, temanızın functions.php dosyasında uygun yere ekliyor ve kaynak kodundan son duruma bakıyorsunuz. Resimlerde alt ve title görünüyorsa bu iş tamamdır.

Kodumuz;

/////////////////////////////////////////////////////////////
// Lordiz - Resimlere otomatik alt-title 
/////////////////////////////////////////////////////////////
function add_image_alt($content) {
global $post;
$pattern ="/<img(.*?)alt=\"(.*?)\"(.*?)>/i";
$replacement = '<img$1alt="$2 '.$post->post_title.'" title="'.$post->post_title.'"$3>';
$content = preg_replace($pattern, $replacement, $content);
return $content;
}
add_filter('the_content', 'add_image_alt');

Sonuç;

<img alt="konu başlığı" title="konu başlığı" src="resim url'si" />

Dikkat edilecek noktalar;

1. Eğer eski yazılarda resimleri eklerken el ile alt eklediyseniz; kaynakta hem eklediğiniz etiket hemde konu başlığı görünecektir. Bunu istemiyorsanız kod içerisindeki $2 karakterlerini kaldırın. Ama hem eklediklerim hemde konu başlığı görünsün diyorsanız aynen kullanın.

2. Eğer yazılardaki resimlere önceden el ile title eklediyseniz kod içerisindeki title=”‘.$post->post_title.'” kısmını kaldırın. Yoksa resimlerin kaynağında iki farklı title etiketi görünür.

3. Eğer konu içindeki herhangi bir resimde alt ve title olmasın istiyorsanız yazı editöründe o resmin kaynağına bakıp alt=”” etiketini kaldırmanız yeterli. Sonrasında yazıyı kaydederseniz sadece o resimde alt ve title görünmez. Tekrar görünmesi içinde alt=”” etiketini geri eklemeniz yeterli.

Öneri: Eğer Seo Friendly İmages eklentisi ile sorununuz yoksa onu kullanmaya devam edin. Fakat o eklenti artık güncellenmediği için alternatif olarak Alt Manager eklentisini kullanmanızı öneririm.

NOT: İlgili kodu son sürüm WordPress 4.1’de istediğim gibi çalışır hale getirebildim ancak kod yazarlığım olmadığından belki hatalarım yada kod üstünde yapılabilecek iyileştirmeler vardır. Konuya hakim arkadaşlar olurda yardım etmek isterlerse yorum panelinden iyileştirme yada düzeltme önerilerini bekliyorum. Şimdiden teşekkürler.