Les widgets dans WordPress 2.5 avec widgétisator ;)

La mise-à-jour vers WordPress 2.5 ne se limite pas seulement à des améliorations ergonomiques et cosmétiques au niveau de l’interface d’administration. Prenons les widgets : la page elle-même est profondément remaniée, et toute la partie destinée au choix du nombre de widgets (texte, RSS, catégorie, etc.) disparait, puisque avec cette version, le nombre de certains widgets n’est plus limité. Et comme vous êtes sympa, je vous donne les éléments nécessaires pour nommer et personnaliser vos zones widgétisables dans votre template WordPress.

L’est passé où, le glissé-déposé ?

Conséquence directe sur l’interface, il n’est plus possible d’utiliser le glissé-déposé des widgets vers les différentes “sidebars”. En effet, cette fonction n’était déjà pas très pratique lorsqu’on déclarait quatre zones widgétisables (improprement appelées “sidebars”), alors vous imaginez le dawa avec plus ;)

A la place, nous avons une interface robuste avec à gauche, les différents widgets disponibles, et à droite, les zones widgétisables et les widgets associés, avec les options disponibles pour chacun d’eux.

A noter qu’il est préférable de bien nommer vos zones widgétisables pour vous y retrouver car le choix de ces dernières s’effectue désormais au dans un menu select.

Modifier l’intitulé des zones widgétisables

Dans un précédent article sur les widgets dans WordPress, je n’étais pas parvenu à modifier l’intitulé des zones widgétisables, cette fois, c’est réglé : à la place de sidebar1, sidebar2, etc. voici le code à mettre dans le fichier functions.php pour donner un nom explicite à chaque zone, avec en prime, la possibilité de spécifier pour chacune les balises HTML enveloppantes qui vont bien :

Widgétisator

<?php
// A mettre dans le fichier functions.php de votre thème
if ( function_exists('register_sidebar') )
register_sidebar(array('name'=>'header',
'before_widget' => '<p id="%1$s" class="widget-header %2$s">',
'after_widget' => '</p>',
'before_title' => '<h3 class="widgettitle">',
'after_title' => '</h3>',
));
register_sidebar(array('name'=>'sidebar',
'before_widget' => '<li id="%1$s" class="widget-sidebar %2$s">',
'after_widget' => '</li>',
'before_title' => '<h3 class="widgettitle">',
'after_title' => '</h3>',
));
register_sidebar(array('name'=>'content',
'before_widget' => '<div id="%1$s" class="widget-content %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widgettitle">',
'after_title' => '</h3>',
));
register_sidebar(array('name'=>'footer',
'before_widget' => '<div id="%1$s" class="widget-footer %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widgettitle">',
'after_title' => '</h3>',
));
?>

L’idée est de déclarer individuellement chaque zone, de manière à controler :

  • le nom de la zone (header, sidebar, content, footer),
  • la balise html servant à encadrer le code fournit par le widget avec une class CSS spécifique (widget-header, widget-sidebar, widget-content, widget-footer),
  • la balise de titre avec sa classe CSS spécifique (widgettitle).

Sinon, il reste toujours la possibilité de déclarer plusieurs zones d’un seul coup avec le code :

<?php
if ( function_exists('register_sidebar') )
    $widgetWrap = array(
        'before_widget' => '<div id="%1$s" class="widget %2$s">',
        'after_widget' => '</div>',
        'before_title' => '<h2 class="widgettitle">',
        'after_title' => '</h2>',
    );
    register_sidebars(4, $widgetWrap);
?>

Dans les deux cas, pour terminer, il est nécessaire de définir votre zone widgétisable dans votre template à l’aide des lignes suivantes :

<?php
// A mettre dans votre template là où vous voulez déclarer une WAR
if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('header') ) : ?>

/* Placez ici le code qui doit s'afficher si la zone n'est pas remplie avec des widgets -- facultatif */

<?php endif; ?>

En bref

Vous l’aurez compris, je suis conquis par cette nouvelle version de WordPress, et vous n’avez pas fini d’en entendre parler ;) Pour avoir d’autres informations sur cette version, n’hésitez pas à faire un tour sur WordPress francophone, chez nicolargo ou encore chez Here With Me.

Stay tuned!

Tags : , , , , ,
Publié le 21 mars 2008 par Bruno Bichet.


Ca peut vous intéresser »


4 participations à l'article

  1. 1 jbj a parlé le 22 mars 2008 à 1:01 | Permalien Reply to this comment

    Honte à moi, j’ai pas encore testé wordpress 2.5. Celà dit ton article me mets l’eau à la bouche :)

  2. 2 bruno bichet a parlé le 22 mars 2008 à 3:12 | Permalien Reply to this comment

    @jbj > c’est vraiment à essayer : même si je ne trouvais pas de gros défauts avant, cette nouvelle interface admin est vraiment mieux pensée. Sans compter les petites améliorations par ci par là :)

  3. 3 Guigui a parlé le 29 mars 2008 à 17:09 | Permalien Reply to this comment

    Moi sa ne marche pas sa me marque ” Parse error: syntax error, unexpected T_STRING, expecting ‘)’ ” et je n’arrive pas a régler le problème peut on m’aidé? Merci par avance.

  4. 4 Bruno Bichet a parlé le 13 avril 2008 à 6:13 | Permalien Reply to this comment

    @Guigui > En fait, ça vient des guillemets qui sont transformés par WordPress lors du copié-collé du code. Il faut donc remplacer les guillemets simples obliques par des guillemets simples droits (Maj+F4)

3 Trackbacks

  1. [...] Les widgets dans WordPress 2.5 avec widgétisator Bruno nous fait un topo sur les widgets de la nouvelle version (2.5) de Wordpress [...]

  2. Par Wordpress 2.5, mes premières impressions le 30 mars 2008 à 18:54

    [...] chose qui me chagrine, c'est l'interface de gestion des widgets ! Pourtant Bruno semble ravi … mais moi je trouve qu'on y a perdu en ergonomie ! Maintenant pour installer et [...]

  3. Par Anonyme le 29 mai 2008 à 11:39

    Les widgets dans WordPress 2.5 avec widgtisator ;)…

    Cet article prsente la nouvelle zone des widgets de WordPress 2.5 et propose une mthode de dclaration des zones widgtisables dans votre template en utilisant le nom de la zone plutt que son numro. Ceci est trs pratique lorsque votre thme WordPress prse…

Participez à l'article

Votre email ne sera jamais publié ou divulgué.

Enrichissez votre commentaire avec la syntaxe Markdown.

Suivre les commentaires de ce billet par RSS ?