Studiopress Child Themes Özel Widget Alanları Oluşturmak

Son zamanlarda müşterilerimin blog siteleri için genel olarak Studiopress Genesis Framework kullanıyorum. Genesis’de özel widget alanları oluşturmak Thesis’da olduğu kadar kolay değil. Thesis’da sürükle bırak yöntemiyle sitemizin istediğimiz alanına widget ekleyebiliyorduk. Genesis kullanan müşterilerim bu işlemi biraz daha uzun yoldan halledebilecek.

Widget nedir? WordPress sitemizin yönetim panelinde bulunan Görünüm > Bileşenler sayfasından sitemizin belirli kısımlarına ekleyebildiğimiz özel alanlardır. Orijinalinde bu alanlar belli noktalarla sınırlıdır. Bu anlatım ve kaynak kodlar sayesinde Genesis bloğunuzun istediğiniz alanına widget ekleyebileceksiniz.

Genesis’te bu mantık hook kullanımıyla işler. functions.php dosyamıza ekleyeceğimiz bir kodlama olacak. Bu kodlamaya ekleyeceğimiz hook’larla özel widget alanının nerede, bütün sayfalarda mı yoksa belli sayfalarda mı görüntüleneceğini belirleyeceğiz.

Menünün hemen altına widget ekleme. Header.

Aşağıdaki konu functions.php sayfamıza eklediğimizde bileşenler sayfasında Menü Altı adında bir widget oluşacaktır. Menü altı widget’ine ekleyeceğiniz her bileşen sitenizin bütün sayfalarında gözükecektir.

genesis_register_sidebar( array(
'id' => 'menu-alti',
'name' => __( 'Menü Altı' ),
'description' =>  __( 'Menünün hemen altına' ),) );
add_action( 'genesis_after_header', 'menu_alti', 5 );
function menu_alti() { if ( is_active_sidebar ) {
genesis_widget_area( 'menu-alti', array(
	'before' => '<div class="menu-alti">',
	'after'  => '</div>', ) );}}

Bu kodlamayı bahsedeceğim alanları değiştirerek çoğaltarak kullanabilirsiniz.

Öncelikle kolamayı genel olarak tanıyalım.

'id' => 'menu-alti',
'name' => __( 'Menü Altı' ),
'description' =>  __( 'Menünün hemen altına' ),) );

Bu kısım widget’imize isim ve açıklama eklediğimiz alan. ID’de boşluk Türkçe karakter kullanmadığınız sürece istediğiniz gibi revize edebilirsiniz.

add_action( 'genesis_after_header', 'menu_alti', 5 );

Burada bulunan genesis_after_header widget’in konumunu belirler. Widget’i göstermek istediğiniz alanın hook’unu bulup buraya eklemeniz gerekiyor.

function menu_alti() { if ( is_active_sidebar )

is_active_sidebar bütün sayfalarda mı yoksa belli sayfalarda mı görüntüleyeceğini belirler.

'before' => '<div class="menu-alti">',
'after'  => '</div>', ) );}}

Eğer isterseniz oluşturacağınız widget’i bir div içerisine alarak CSS tanımlayabilirsiniz. Eğer CSS dosyanıza .menu-alti tagıyla bir stil eklerseniz widget’inize yansır.

Yazının hemen sonrasına widget alanı ekleme

Bu sefer kodlamayı biraz daha basitleştirerek sadece yazıların sonuna widget alanı ekleyelim.

genesis_register_sidebar( array(
'id' => 'yazi-sonu',
'name' => __('Yazı Sonrası') ) );
add_action( 'genesis_entry_footer', 'yazi_sonu', 5 );
function yazi_sonu() {
if ( is_single() ) { genesis_widget_area( 'yazi-sonu') ;}}

CSS tanımını ve widget açıklama alanını kaldırarak daha basit bir görünüm elde ettik. Bu kodu functions.php sayfanıza eklemeniz durumunda sadece yazı içeriklerinizin hemen sonrasına widget alanı eklemiş olursunuz.

Hook listesi için: Studiopress Genesis Hook Listesi (Genesis kancaları)

“Studiopress Child Themes Özel Widget Alanları Oluşturmak” üzerine 6 yorum

    • Kancalar listesini kullanarak bu konudaki kodlarla istediğiniz alana widget ekleyebilirsiniz. Deneme yanılma yöntemiyle yapamazsanız tekrar görüşelim.

      Cevapla
  1. Uzun zamandır içerik eklemiyordunuz Hocam. Umarım bilhassa WordPress ve genel bloglama içeriklerinizin yenisi gelir. Bu konudaki kanca listesi ve açıklamaları çok işime yaradı. Teşekkürler.

    Cevapla
    • İşinize yaradığına sevindim. Bahsettiğiniz içeriklerle ilgili çalışmalarım olacak. Takip ettiğiniz için teşekkür ederim.

      Cevapla

Yorum yapın