Genesis Framework alt temanıza widget ekleyin

Bazı müşterilerimin projeleri için Studiopress Genesis Framework çok ideal bir seçim oluyor. Yaptığım çalışmalarda müşterilerime esneklik sunmak için işlevleri arka planda tutmaktan kaçınıyorum. Bu noktada widget’lar devreye giriyor.

Widget kullanmak, istediğinizde veya gerektiğinde WordPress bileşenler kısmından ilgili alanı düzenlemenize olanak tanır.

Genesis’de özel widget alanları oluşturmak için fonksiyonlar oluşturmanız gerekiyor.

Kullandığınız alt temanın functions.php dosyamıza ekleyeceğiniz fonksiyonla, hook’lar aracılığıyla özel widget alanının nerede, bütün sayfalarda mı yoksa belli sayfalarda mı görüntüleneceğini belirleyeceksiniz.

Menünün altına widget ekle

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 fonksiyonu ilgili alanları değiştirerek çoğaltabilirsiniz.

Öncelikle fonksiyonu genel olarak tanıyın.

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

Bu kısım widget’a isim ve açıklama eklediğiniz alan. ID’de boşluk ve 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 sonuna widget ekle

Sadece yazılar sayfasında işlem görecek.

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.

Yorum yapın