Feragatname: WP için yeni spanking yapıyorum.
Starkers HTML5 framework temasını kullanıyorum. functions.php
içinde bu kodu görüyorum:
function starkers_widgets_init() {
// Area 1, located at the top of the sidebar.
register_sidebar( array(
'name' => __( 'Primary Widget Area', 'starkers' ),
'id' => 'primary-widget-area',
'description' => __( 'The primary widget area', 'starkers' ),
'before_widget' => '<li>',
'after_widget' => '</li>',
'before_title' => '<h3>',
'after_title' => '</h3>',
) );
// Area 3, located in the footer. Empty by default.
register_sidebar( array(
'name' => __( 'First Footer Widget Area', 'starkers' ),
'id' => 'first-footer-widget-area',
'description' => __( 'The first footer widget area', 'starkers' ),
'before_widget' => '<li>',
'after_widget' => '</li>',
'before_title' => '<h3>',
'after_title' => '</h3>',
) );
// ... more calls to register_sidebar() ...
}
Ve footer.php
içinde bu kodu görüyorum:
<?php get_sidebar( 'footer' ); ?>
get_sidebar()
'ın o string argümanını nasıl alacağını ve register_sidebar()
tarafından tanımlanan uygun widget'ları nasıl bulacağını bilmiyorum. Functions.php pasajında yukarıda yayınladım. name
, id
ve description
özellikleri dışında hiçbir "altbilgi" den bahsedilmez. Ancak get_sidebar()
işlevinin bu özellikler içinde 'footer' araması yapması bana garip gelir.
Bu ne sorduğumun bir anlamı var mı? Eksik bir parça var mı?
Sormamın nedenleri şudur: - WP mimarisi hakkında daha fazla bilgi edinmek istiyorum - Özel bir widget alanı tanımlayabilmek ve belirli bir sayfada nasıl oluşturacağımı bilmek istiyorum.
Bir ton teşekkürler.
Siz sadece get_sidebar()
'yi index.php
' dan arayın ve sidebar.php
tema dosyasını yükler.
register_sidebar()
/, diğer yandan, temanız destekliyorsa eklentilerin ve sidebar.php
dosyanızda dinamik olarak içerik eklemek istediğiniz widget'lar için kullanılır.
Senin durumunda, dizininizin dizininde sidebar-footer.php
adında bir dosya var mı?
get_sidebar()
ile hiç uğraşmadım. Bunun yerine sadece dynamic_sidebar()
işlevini kullanıyorum. Buna şöyle diyorsun:
dynamic_sidebar('first-footer-widget-area');
Ve bu tüm kenar çubuğuna bakar. Artık dosya eklemesi yok, darmadağın tema klasörleri yok. 5 farklı kenar çubuğuna sahip olmak istersem, herhangi bir dosya eklemiyor, sadece functions.php
dosyasındaki ekstra fonksiyonlar.
get_sidebar('name')
, sidebar-name.php
adının bir kenar çubuğu şablonunu alır.
Sidebar-name.php içinde, kenar çubuğunun HTML'si ve widget'ların gideceği dynamic_sidebar('some-name-hopefully-the-same')
çağrısı vardır.
register_sidebar(array(name=>'some-name-hopefully-the-same', ...))
, dynamic_sidebar'ın çalışmasını sağlayan şeydir.
Gördüğünüz gibi get_sidebar(templatename)
, kenar çubuğu şablonlarıyla kullanmak içindir. Onlara ihtiyacınız yoksa, doğrudan temanızdan dynamic_sidebar(sidebarname)
dosyasını çağırabilirsiniz.
get_sidebar('footer')
, aktif temadan sidebar-footer.php
öğesini yüklemeye çalışır. Starkers bu dosyayı sağlar. starkers/sidebar-footer.php
dosyasını kontrol edin, işler netleşmelidir.