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.
03 Mayıs 2008 | 21:04
that music in my soul , it’s wordpress. BeÅŸ beÅŸlik yazı olmuÅŸ
04 Mayıs 2008 | 16:26
ş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
12 Temmuz 2008 | 18:35
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?
01 Kasım 2008 | 08:34
selamlar bu widget ne işe yarıyor ?
08 Kasım 2008 | 11:32
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.
08 Kasım 2008 | 14:20
@bahadır baran: functions.php de bir hata var. doğru yazdığınıza emin olun.