Yazı içine reklam eklemek… adlı makalemin ikinci versiyonuna hoşgeldiniz. Bir önceki ve şuradan ulaşabileceğiniz, WordPress sisteminizdeki bir makalenin içerisine “belirli karakter sonrası reklam eklemek” konulu makale uzayıp gideceğinden güncellme yerine yeni bir makale yazmak daha kolay geldi açıkçası. Selman arkadaşımız yorum ile bir soru sormuş. Yazı içine eklenen resim sonrası reklam eklemek nasıl olur diye. Sorunun aslı şöyle;
Sayfaların içine resim ekliyorum, o resimlerin altına yani resim kodlarının bittiği yere reklam ekleme mümkün mü?
Resmin bittiği yerden içeriği bölüp (resmin bitiş koduna göre bölme işleminde alınacak parçanın numarası değişebilir) devamındaki yazı ile arasına resim ekleme şeklinde
Bu soruya cevabım “mümkündür” oldu. preg_replace()
kullanarak bunu halledebiliriz. Yani Lazyload ile ilgili makalemdeki gibi.
“Yazı içine reklam eklemek” mantığı
Burada önceki konudan farklı olarak yapacağımız işlem yazı içindeki tüm img
etiketlerini bulup onların sonrasına bir reklam kodu eklemek. Yalnız şöyle bir sıkıntı olabilir. Google reklam politikaları -yanlış hatırlamıyorsam- aynı anda 3 veya 4 reklam kodunu kullanabileceğimizi söylüyor. Bu kod yazı içindeki tüm resim etiketlerinin altına kodu ekleyeceğinden ekleyeceğiniz resimlere ya da kullanacağınız bu kodun reklam politikalarına uymaması durumu ortaya çıkabilir. Ben şimdiden uyarıyorum.
Kod;
Aşağıdaki kodu temanızın içerisinde yer alan functions.php
içerisine ekleyin. İlgili alanı reklam kodunuz ile değiştirin ve dosyayı kaydedip sunucunuza yollayın.
function resim_sonrasi_reklam_eklemek($content) { $reklam_kodu = ''; //Reklam kodumuz burada eklenecek. Reklam kodundaki tek tırnak ( ' ) lardan kaçının. if (is_single()){ $resmibul = '/<img(.*?)src="(.*?).(bmp|gif|jpeg|jpg|png)"(.*?)>/i'; $reklamkoduekle = '<img src="$2.$3" $1 $4><br class="clear" />'.$reklam_kodu.'<br class="clear" />'; $content = preg_replace($resmibul,$reklamkoduekle,$content); } return $content; } add_filter( 'the_content', 'resim_sonrasi_reklam_eklemek' );
Soru ve sorunlarla ilgili yorum yaparsanız sevinirim.
Selametle