web-dev-qa-db-ja.com

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で問題が発生したかどうかはわかりません。

4
Jiew Meng

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にあります。

6
Chip Bennett