2011-05-08 3 views
0

-je utiliser Wordpress et un widgets contenant la barre latérale, exécutez par ce code:Wordpress - Ajouter un div autour widget archives

<div class="sidebar modern"> 
    <?php if (is_active_sidebar('sidebar-modern')) : ?> 
     <ul> 
      <?php dynamic_sidebar('sidebar-modern'); ?> 
     </ul> 
    <?php else : ?> 
    <?php endif; ?> 
</div> 

Ce que je fais dans wp-admin

  1. -je ajouter le widget archives
  2. I Configurer l'affichage en tant que liste de sélection (menu déroulant) dans les options de widget

Ce dont j'ai besoin est d'ajouter une classe HTML de conteneur à la sélection.

J'ai essayé ces derniers et a échoué:

  • CSS (car il est une chose de conception)
  • Filtre - widget_archives_dropdown_args
  • Filtre - wp_get_archives filtre

S'il est possible de ajouter une classe de conteneur à tout le widget à l'intérieur (titre du widget non inclus), ce serait bien par moi.

+0

Pour les futurs googleurs: voir http://wordpress.stackexchange.com/questions/74732/adding-a-div-to-wrap-widget-content-after-the-widget-title pour plus de réponses. – LindaJeanne

Répondre

-1

Ce n'est pas possible maintenant sans éditer le noyau de Wordpress.

+0

Vous avez vraiment marqué votre réponse comme la bonne? Ulukai vous a donné la bonne réponse. –

+0

Non, pas vraiment. Une réponse incomplète. Cela ne résout pas complètement le problème. Corrige moi si je me trompe. –

1

Où vous vous inscrivez la barre latérale:

register_sidebar(array(
    'name'   => 'Sidebar Modern', 
    'id'   => 'sidebar-modern', 
    'before_widget' => '<div id="%1$s" class="%2$s widget clearfix">', 
    'after_widget' => '</div>', 
    'before_title' => '<h3 class="title">', 
    'after_title' => '</h3>' 
)); 

Modifier comme si:

register_sidebar(array(
    'name'   => 'Sidebar Modern', 
    'id'   => 'sidebar-modern', 
    'before_widget' => '<div id="%1$s" class="%2$s widget clearfix">', 
    'after_widget' => '</div></div>', 
    'before_title' => '<h3 class="title">', 
    'after_title' => '</h3><div>' 
)); 

La clé est les divs supplémentaires:

'after_widget' => '</div > </div > '
'after_title' => '</h3 > <div>'

EDIT:

Comme Ionut Staicu a, vous pouvez simplement le faire comme ceci:

register_sidebar(array(
    'name'   => 'Sidebar Modern', 
    'id'   => 'sidebar-modern', 
    'before_widget' => '<div><div id="%1$s" class="%2$s widget clearfix">', 
    'after_widget' => '</div></div>', 
    'before_title' => '<h3 class="title">', 
    'after_title' => '</h3>' 
)); 
+0

Ceci ne fonctionne pas avec les widgets qui n'ont pas de jeu de titres. Le widget de recherche ne peut avoir aucun titre par exemple. –

+1

s'il n'y a pas de jeu de titres, alors vous pouvez simplement ajouter un div supplémentaire dans 'before_widget' &' after_widget'. –

+0

@lonut Staicu. Je ne suis pas sûr de ce que tu veux dire. Lors de la configuration de register_sidebar, la barre latérale est définie. Il ne sait pas quels widgets il pourrait y avoir et quels widgets ont des titres et lesquels ne le sont pas. Sans titre, il y a un tag div ouvert et deux tags div fermés. Problèmes d'imbrication Comment est-ce résolu en ajoutant un div supplémentaire à before_widget et after_widget? –

Questions connexes