dynamic_sidebar não renderizando barra lateral

4

Eu tenho o seguinte código

// 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 ..

Acho que a barra lateral estática é o que renderiza mesmo se eu adicionar widgets no painel. Não tenho certeza se o WP3.2 causou isso, pois nunca tentei usar a barra lateral dinâmica antes de atualizar

    
por Jiew Meng 07.07.2011 / 16:48

1 resposta

6

Você deve adicionar os parâmetros name e id à sua matriz de argumentos register_sidebar() :

'name'=>'Sidebar Name',
'id'=>'sidebar-slug',

Assim como:

register_sidebar(array(
    'name'=>'Sidebar Name',
    'id'=>'sidebar-slug',
    'before_widget' => '<section>',
    'after_widget' => '</section>',
    'before_title' => '<h3>',
    'after_title' => '</h3>',
));

Em seguida, chame o id da barra lateral na sua chamada dynamic_sidebar() :

if ( ! dynamic_sidebar( 'sidebar-slug' ) ) {

}

A propósito: você não precisa incluir um function_exists( 'dynamic_sidebar' ) ) condicional; esta funcionalidade está no WordPress desde a versão 2.8.

    
por Chip Bennett 07.07.2011 / 17:07