web-dev-qa-db-fra.com

dynamic_sidebar ne rend pas la barre latérale

J'ai le code suivant

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

Je trouve que la barre latérale statique est ce qui est rendu même si j'ajoute des widgets dans le tableau de bord. Je ne sais pas si WP3.2 est la cause, je n'ai jamais essayé d'utiliser la barre latérale dynamique avant la mise à jour.

4
Jiew Meng

Vous devez ajouter les paramètres name et id à votre tableau d'arguments register_sidebar():

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

Comme tels:

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

Appelez ensuite la id de la barre latérale dans votre dynamic_sidebar():

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

}

Au fait: vous n'avez pas besoin d'inclure une function_exists( 'dynamic_sidebar' ) ) conditionnelle; cette fonctionnalité est disponible dans WordPress depuis la version 2.8.

6
Chip Bennett