Temanızı Widget Destekli Hale Getirin

Alisko tarafından
3 Mayıs 2008 tarihinde yazıldı.

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.

7 Yorum VarYorum Yazın
  • rzrarti
    03 Mayıs 2008 | 21:04
    Reply

    that music in my soul , it’s wordpress. BeÅŸ beÅŸlik yazı olmuÅŸ :)

  • mikro-pc
    04 Mayıs 2008 | 16:26
    Reply

    şu an kullandığım temada bu sorunu yaşamış ve bugün çözmüştüm. ben de bu konuyu kendi blogumda paylaşacaktım. önce davranmışsın hocam :) tebrikler

  • By_faris
    12 Temmuz 2008 | 18:35
    Reply

    Selam.
    Bende mandigo temayı kullanıyorum fakat türkçe çevirisinde sanırım bir yanlışlık var gibi.
    Tema kullanılan “gönderen” derken mesela türkçe karakter sorunu var.
    Sizde aynı probelm oldu mu?
    .mo dosyasını düzenliyorum abuksabuk bişeye benziyor oda hata veriyor.

    Yardımcı olabilir misiniz?

  • Veli
    01 Kasım 2008 | 08:34
    Reply

    selamlar bu widget ne işe yarıyor ? :D

  • bahadır baran
    08 Kasım 2008 | 11:32
    Reply

    iyi günler.ben functions.php dosyasını tema dizinine atınca böyle bir hatayla karşılaşıyorum.

    Parse error: syntax error, unexpected ‘>’ in /home/…../public_html/wp-content/themes/notepad-chaos/functions.php on line 6

    bu neden olabilir acaba yardımcı olursanız sevinirim.

  • Alisko
    08 Kasım 2008 | 14:20
    Reply

    @bahadır baran: functions.php de bir hata var. doğru yazdığınıza emin olun.

Yorum YazGravatar Edinin

* Name

* Email Address

Website

Bu komutları kullanabilirsiniz:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Reklam
Lagaluga
Kategoriler
Rastgele Yazılar
Bağlantılar
RSS Ali Bahsisoglu
ArÅŸiv
Etiketler