Kaynak: Alisko.Org / Alisko.Org » Temanızı Widget Destekli Hale Getirin
BAŞLARKEN
Efenim bu yazımda sizlere yararlı olacak bir konudan bahsedeceğim. Wordpress’de bir eklenti olarak kurduğumuz Widget olayı 2.3 versiyonundan itibaren wordpress içinde default olarak gelmeye başlamıştı. Ama çoğu kişinin kullandığı temalar bu müthiş sistemi desteklemiyordu. Aradan uzunca bir zaman geçmesinden ötürü artık yapılan her türlü tema widget desteği ile yapılsada hala widget desteklemeyen temalar mevcut. Bu yazımda size temanızı nasıl widget destekli hale getirirsiniz bundan bahsedeceğim. Korkmayın yapamayacağınız zorlukta bir şey değil!!

İLK İŞLEM

İlk olarak temamızın sidebarı widget a uyumlu olmalıdır. Yani belli bir taglar arasında başlık, belli bir taglar arasında ise widget içeriğinin bulunması gerekiyor. Örnek vermek gerekirse;
<h2>Kategoriler</h2>
<ul>
<li><a href=”http://siteismi.com/?cat=1″>Kategori 1</a></li>
<li><a href=”http://siteismi.com/?cat=2″>Kategori 2</a></li>
<li><a href=”http://siteismi.com/?cat=2″>Kategori 3</a></li>
</ul>


Görebileceğiniz üzere h2 tagları arasında başlığımız yer alırken, widget içeri ul tagları arasında yer alıyor ve belli bir düzen dahilinde li tagları kullanılıyor. Bu düzeni bozacak şeyler olduğunda sidebarımızda bu işimizi bozar. ul tagları arasında herhangi bir style kodu kullanmamız işleri zorlaştırır, hiç bir css kodu kullanmanız yararınıza. Size bir de olmayacak bir örnek vereyim ki aradaki farkı anlayalım.
<h2>Kategoriler</h2>
<ul class=”sidebar”>
<div id=”sidebar-reklam”></div>
<li class=”lili”><a href=”http://siteismi.com/?cat=1″>Kategori 1</a></li>
<li class=”lili”><a href=”http://siteismi.com/?cat=2″>Kategori 2</a></li>
<li class=”lili”><a href=”http://siteismi.com/?cat=2″>Kategori 2</a></li>
</ul>

Bu widget uyumlu bir kodlama değil çünkü görebileceğiniz gibi style kodları içeriyor ve bu işimize çomak sokar. Eğer bu kısmı anladıysanız işin yarısı bitmiş demektir ve bir kaç dakika içinde widget destekli bir temaya sahip olacaksınız.

FUNCTION.PHP

Şimdi sıra temanızın widget destekli olduğunu blogumuza anlatmamız gerekiyor. Nasıl anlatıcaz? functions.php adında bir dosya oluşturuyoruz tema klasörümüzün içinde. Bu dosyanın içine yazacağınız her kod Wordpress fonksiyonlarına işlevsellik kazandıracaktır. Eğer dosya varsa bir metin editörü ile açıp bundan sonra anlatacaklarımı uygun bir yere koyarsınız. Oluşturduğumuz PHP dosyasının içine bu kodları ekliyoruz;
<?php
if ( function_exists(’register_sidebar’) )
register_sidebar(array(
‘before_widget’ => ”,
‘after_widget’ => ”,
‘before_title’ => ‘<h2>’,
‘after_title’ => ‘</h2>’,
));
?>

Burdaki kodlarda anlatılan istediğimiz widget desteği varsa wordpressde fonksiyonu aşağıda tanımlanan şekilde yürüt. before_widget ve after_widget kısımlarına yazacağımız tagler, eğer her widget başlar ve biterken bir tag kullanılıyorsa onu yazacağız, bir şey yoksa boş bırakıyoruz. İlk İşlem kısmında verdiğim örnekte başlığı h2 taglarına koyduğum için after_title ve before_title kısımlarına h2 yazdım, siz kendinize uygun olanı koyarsınız. Gerekli işlemleri yaptıktan sonra dosyamızı kaydediyoruz. Artık sona yaklaşıyoruz, widget destekli bir tema için heyecan dorukta

SONA YAKLAŞIRKEN
Son adımlara gelirken sidebar.php dosyamızı açıyoruz ve bu dosyanın içinde kodlanmış blogumuzun yan kısmını görüyoruz. Muhtemelen kod başlarken <div id=”sidebar”> diye başlamıştır ve kod sonunda </div> yer alıyordur. Eski yazdığımız kodları hiç silmiyoruz ve şöle bir tanımlama yapıyoruz. Div tagları arasındaki kısmı şu iki kodun arasına alıyoruz. Başlarken ki <div id=”sidebar”> kısmının altına kopyalayacağımız kod;
<?php if ( !function_exists(’dynamic_sidebar’) || !dynamic_sidebar() ) : ?>
ve en son divin bittiği yerden önceki yere koyacağımız kod ise
<?php endif; ?>
Bu eklediğimiz kodlar sonunda blogumuza anlatmak istediğimiz dynamic_sidebar fonksiyonu yoksa sidebarım aşağıdaki kodları çalıştır. Eğer biz Görünüm->Bileşenler kısmından istediğimiz gibi Widgetlarımızı sıralarsak hiç bu kodlara gerek kalmıcak, bizim sıraladığımız gibi görünecek.

MUTLU SON
Olay bundan ibaret, ben bazı yerlerde kendi düzenlediğim temadan kısımlar alarak anlattım, siz de o kısımlar olmayabilir. Basit bir şekilde anlatmaya çalıştım, herşeyi doğru olarak yaparsanız 5 dk içinde temanız widget destekli bir hale gelicektir. Bu yazım sadece 1 tane sidebar ı olan temalar için uygun ve geçerlidir. 2 veya daha fazla sütunu olan temaların widget uyumlu hale getirilmesini ilerleyen yazılarımda anlatacağım. Her türlü sorununuzu yorumlar kısmından bana iletebilirsiniz.

Kaynak: Alisko.Org / Alisko.Org » Temanızı Widget Destekli Hale Getirin
Yazan: Alisko