Merhaba arkadaşlar. Bugün sizlere, yakın zamanda ihtiyacım olan ve yaptığım araştırmalar sonucu yabancı kaynaklardan edindiğim bir bilgiyi paylaşmak istiyorum. Diyelim sitenizin sidebar kısmına bir video ekleyeceksiniz fakat bu videonun yalnızca anasayfada görünmesini, diğer sayfalarda (tekil yazılar, kategori, etiket sayfaları vb.) görünmemesini istiyorsunuz. Bunun için kullanmanız gereken iki kod var.

Normal şartlarda WordPress’te sidebar’a eklediğimiz widget’lara (bileşen) PHP kodu ekleyemiyoruz. Aslında ekleyebiliyoruz ama maalesef çalışmıyor. Önce bu sorunu çözmek için temanızın functions.php dosyasını açıp (Yönetim Paneli > Görünüm > Düzenle) en alta (Eğer ?> ifadesi varsa bunun üstüne gelecek şekilde) şu kodu ekliyoruz:

/* WIDGET'TE PHP KULLANABİLME KODU */
add_filter('widget_text','execute_php',100);
function execute_php($html){
 if(strpos($html,"<"."?php")!==false){
 ob_start();
 eval("?".">".$html);
 $html=ob_get_contents();
 ob_end_clean();
 }
 return $html;
}

Bu kodla beraber, bileşenlere eklediğiniz herhangi bir PHP kodu gerektiği gibi çalışacaktır. Bundan sonra bileşenimizin içinde aşağıdaki kodu kullanıyoruz:

<?php
if (is_home() ) { 
echo 'ANASAYFADA GÖRÜNECEK KOD';
}
else { echo 'ANASAYFA DIŞINDA GÖRÜNECEK KOD'; } ?>

Eğer anasayfa dışında başka bir kod görünmesin, o kısım boş kalsın diyorsanız da şu şekilde kırpılmış halini kullanırsınız:

<?php
if (is_home() ) { 
echo 'SADECE ANASAYFADA GÖRÜNECEK KOD';
} ?>

Yeni nesil bazı WordPress temalarında anasayfa oluşturmak için Ana Sayfa yerine tamamen özelleştirilebilir olan ve Sayfalar kısmından bir sayfa şeklinde çağırılan Ön Sayfa (Front Page) yöntemi kullanıldığı için bu kod çalışmayacaktır. O sorunu da çok basit bir şekilde çözebiliriz. Ne yapıyoruz? if (is_home() yazan yeri if (is_front_page() yapıyoruz. Hepsi bu. Şöyle görünecektir:

<?php
if (is_front_page() ) { 
echo 'ANASAYFADA GÖRÜNECEK KOD';
}
else { echo 'ANASAYFA DIŞINDA GÖRÜNECEK KOD'; } ?>

Bu tekniği kullanarak bir kodu belli bir kategoriye ait yazıların bulunduğu sayfada göstermek gibi spesifik ayarlamalar yapabilirsiniz. Onu da bir sonraki yazımda anlatacağım. Sevgi ile.