Penafian: Saya baru sekali memukul WP.
Saya menggunakan tema kerangka Starkers HTML5 . Dalam functions.php
saya melihat kode ini:
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() ...
}
Dan footer.php
saya melihat kode ini:
<?php get_sidebar( 'footer' ); ?>
Saya tidak mengerti bagaimana get_sidebar()
cara mengambil argumen string itu dan menemukan widget yang sesuai yang didefinisikan oleh register_sidebar()
. Dalam cuplikan functions.php saya diposting di atas. Tidak ada penyebutan "footer" kecuali untuk name
, id
dan description
properti. Tetapi akan terasa aneh bagi saya yang get_sidebar()
akan mencari 'footer' di dalam properti itu.
Apakah ini masuk akal apa yang saya minta? Apakah ada bagian yang hilang?
Alasan saya bertanya adalah karena - Saya ingin tahu lebih banyak tentang arsitektur WP - Saya ingin dapat mendefinisikan area widget khusus dan tahu bagaimana merendernya di halaman tertentu.
Terima kasih banyak.
sumber
sidebar-footer.php
kondisional panggilandynamic_sidebar()
untuk semua area widget yang sesuai.get_sidebar('name')
mendapat templat sidebar namasidebar-name.php
.Di dalam sidebar-name.php, ada HTML untuk sidebar, dan panggilan ke
dynamic_sidebar('some-name-hopefully-the-same')
, di mana widget akan pergi.register_sidebar(array(name=>'some-name-hopefully-the-same', ...))
inilah yang memungkinkan dynamic_sidebar berfungsi.Seperti yang Anda lihat,
get_sidebar(templatename)
digunakan untuk sidebar-templates. Jika Anda tidak membutuhkannya, Anda dapatdynamic_sidebar(sidebarname)
langsung menelepon dari tema Anda.sumber
get_sidebar('footer')
mencoba memuatsidebar-footer.php
dari tema aktif. Starkers memang menyediakan file ini. Periksastarkers/sidebar-footer.php
dan segala sesuatunya menjadi jelas.sumber