dynamic_sidebarがサイドバーをレンダリングしない
私は以下のコードを持っています
// in functions.php
register_sidebar(array(
'before_widget' => '<section>',
'after_widget' => '</section>',
'before_title' => '<h3>',
'after_title' => '</h3>',
));
// in sidebar.php
if (!function_exists('dynamic_sidebar') || !dynamic_sidebar()) : ?>
// static sidebar here ..
ダッシュボードにウィジェットを追加しても、静的サイドバーが表示されることがわかりました。アップデート前に動的サイドバーを使用したことがないため、WP3.2で問題が発生したかどうかはわかりません。
register_sidebar()
引数配列にname
およびid
パラメータを追加する必要があります。
'name'=>'Sidebar Name',
'id'=>'sidebar-slug',
こんな感じ:
register_sidebar(array(
'name'=>'Sidebar Name',
'id'=>'sidebar-slug',
'before_widget' => '<section>',
'after_widget' => '</section>',
'before_title' => '<h3>',
'after_title' => '</h3>',
));
次に、dynamic_sidebar()
呼び出しでサイドバーのid
を呼び出します。
if ( ! dynamic_sidebar( 'sidebar-slug' ) ) {
}
ちなみに、function_exists( 'dynamic_sidebar' ) )
条件を含める必要はありません。この機能はバージョン2.8以降WordPressにあります。