WordPress Bileşen Alanı Oluşturma

07 02 2013 21:48 tarihinde, WordPress kategorisinde yazıldı. 5 yorum yapıldı, 18006 okundu

wp-bilesenKullanmış olduğum tema içerisinde gereksiz kodlar vb bulunduğu için kendi temamı oluşturmaya karar verdim. Son iki gündür bu yüzden sizlerle bir şey paylaşamıyordum.

Yeni tema daha hızlı ve daha sade bir görünüme sahip olacak. Aslında eskisini sürekli düzenliyordum ama temanın telif hakkına sahip olmadığım için hem de temize çekmek için böyle bir girişimde bulundum.

Tema oluştururken bir çok şeyi de öğrenmiş oluyorsunuz. Bunlardan biri de temada herhangi bir yere admin panelinden bir bileşeni eklemek için alan oluşturma.

Admin panelinde bileşen eklemek istediğimiz alanları tanımlamak için aşağıdaki kod örneğini biraz açıklayayım.

[php]function nega_register_sidebar($args) {
$common = array(
‘before_widget’ => ‘<div id="%1$s" class="bilesen %2$s"><div class="bilesen-icerik">’,
‘after_widget’ => "</div></div>\n",
‘before_title’ => ‘<h3 class="bilesen-baslik">’,
‘after_title’ => "</h3>\n"
);

$args = wp_parse_args($args, $common);

return register_sidebar($args);
}

nega_register_sidebar(array(
‘name’ => ‘Üst Bileşen(Header)’,
‘description’ => ‘En ust bilesen’,
‘id’ => ‘ust-bil’
));[/php]

Yukarıda fonksiyonu belirlenmiş bir adet bileşen alını bulunuyor.
En üstteki bileşen içeriğini ve bileşen başlığını belirleyen alanı dilediğiniz şekilde düzenleyebilirsiniz. class ve id’ler önemli değil.

En altta nega_register_sidebar şeklinde başlayan bileşen adı, açıklaması ve id’si yer alan kısmı istediğiniz gibi çoğaltabilirsiniz. Ancak tüm id’ler farklı olmalı. Zaten adı üstünde id. Bileşen başlığı yani name olarak belirlenen kısımda üst bileşen (header) olarak adlandırma bileşeni admin panelinden sürüklerken bırakacağınız konumdaki ismi belirler.
Açıklama ise sürüklenen konum açıldığında içerisindeki açıklamayı gösterir.(Yukarıdaki fotoğrafta önizleme mevcut.)

Her bilesen için belirlenen “id” tema dosyalarına ekleyeceğimiz kodda kullanılacaktır.
Mesela yukarıdaki bileşeni kullanmak için header.php dosyasına(en üst bileşen olduğu için) aşağıdaki kodu yerleştirmek gerekir.

[php]<?php dynamic_sidebar( ‘ust-bil’ ); ?>[/php]

Yani ‘ust-bil’ id’sine sahip bileşeni çekiyoruz.
Yukarıdaki kodları çoğaltabilirsiniz.
Bir diğer konu da anasayfa ile diğer sayfalar arasındaki bileşenleri farklı gösterme.

Yani anasayfadaki sidebarda yer alan bir bileşeni bir yazıya girdiğimizde göstermemek. Ya da buna anasayfada ve diğer sayfalarda faklı bileşen kullanma da diyebiliriz.

Bunun için sidebar.php dosyasına eklememiz için ihtiyacımız olan kod şu şekilde olacaktır:

[php]<?php
/* sag sidebar 1 */
if (is_home())
{
dynamic_sidebar( ‘ana-bil-bir’ );
}
else
{
dynamic_sidebar( ‘say-bil-bir’ );
} ?>[/php]

Yani eğer anasayfadaysak bize “ana-bil-bir” id’li bileşeni göster, değilsek “say-bil-bir” id’li bileşeni göster.

Hepsi bu kadar 🙂


Bunlar da İlginizi Çekebilir
Bu Makale 5 Yorum Aldı. Siz Ne Düşünüyorsunuz?
  1. Kardeşim Emeğine Sağlık Çok Makbule Geçti. Çok Teşekkür Ederim

  2. İşime yaradı, teşekkürler.

  3. Merhabalar, benim sorunum anasayfada hiç bir şekilde widget bileşen alanı oluşturmak istemiyorum. Sayfalar ve Yazıların bulunduğu sayfalarda widget alanlarının bulunmasını istiyorum. Sayfalarda bu durumu admin panelden eklerken solda sütun seçeneğini seçerek yaptım yalnız yazılar kısmını bir türlü yapamadım yardımcı olabilirmisiniz.

    • Bileşen alanını sidebar.php ye çekiyorsanız orada anasayfada değilsek çağır diye bir komut girmemiz gerekir. [php]< ?php if (!is_home())
      {
      dynamic_sidebar( ‘ana-bil-bir’ );
      } ?>[/php]

Sponsorlu Bağlantılar

Son Yorumlar

  • Nebi Garcı Misafir

    Bu problemle karsılastığımda haftalarca uğrasmıs çözememiştim. Sizden aldığım hizmetler de oldu o yüzden aklıma geldiniz sonra ilgilenemeyeceğinizi dusunerek yazmadım. Forumlarda çözüm ararken bir arkadaş bu linki verdi, ve sorun çözüldü. Allah razı olsun. Teşekkür ederim.
  • Nebi Garcı Misafir

    Bilgilendirici bir dökümandı. Teşekkürler.
  • Nebi Garcı Misafir

    Ben yaptım neden olmadı sizce
  • Nebi Garcı M.Tunahan COŞKUN

    Merhabalar, ödemeyi Finansbank hesabınıza aktardım.
  • Nebi Garcı Misafir

    Merhabalar engelleyen kişinin sayfasına girilmiyor. Id'sini buldum engel kodunu da yapıştırdım ama sayfası olmadığı için farklı birinin sayfasından yapmaya çalıştığım için bu sorunu veriyor. Ne yapabilirim?