web-dev-qa-db-fra.com

register_sidebar ignore 'id' et 'class'

J'utilise les éléments suivants pour enregistrer une zone de widget:

if ( function_exists('register_sidebar') )
    register_sidebar( array(
    'name' => __( 'Footer Widgets', 'hex'),
    'id' => 'footer-widgets',
    'class' => 'footer-widgets',
    'description' => __( 'Widgets will appear in the blog, between the end of content and footer', 'hex' ),
    'before_widget' => '<li class="widget %2$s">',
    'after_widget' => '</li>',
    'before_title' => '<h2 class="widgettitle">',
    'after_title' => '</h2>'
) );

Et id et class sont ignorés, ce que je reçois ne sont que les widgets eux-mêmes - l'élément supérieur de la zone des widgets est le <li>

Je sais que je peux simplement l'envelopper dans le index.php, où les widgets sont affichés, avec un div, mais n'est-ce pas supposé le faire?

4
ilyo

Le paramètre id dans register_sidebar n'est pas directement lié à la sortie HTML. Il est utilisé pour identifier chaque barre latérale lors de la construction de $ widget_object.

La classe devrait être ajoutée au balisage before_widget.

http://core.trac.wordpress.org/browser/tags/3.4.1/wp-includes/widgets.php#L1128 est l'endroit où la classe est analysée.

7
Chris_O