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!
PS : Le respect de la vie privée sur internet est important : j'ai décidé d'échanger mon bouton Like de Facebook par un bouton Faire un don de Paypal car Il n'y pas d'amour, il n'y a que des preuves d'amour
(Jean Cocteau) ;) Merci d'avance.
Afin de satisfaire le plus grand nombre, j'ai ajouté
un bouton Flattr parce que vous le valez bien ;)
Honte à moi, j’ai pas encore testé wordpress 2.5. Celà dit ton article me mets l’eau à la bouche :)
@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à :)
[...] 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 [...]
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.
[...] 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 [...]
@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)
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…
// A mettre dans votre template là où vous voulez déclarer une WAR ok, mais c quoi mon « template » et accessoirement à pat la fait que c’est une guerre, « WAR » quésako dans le contexte ?
Pour le moment j’ai mis le code qui va bien dans functions.php…. mais évidemment, après avoir déplacer/coller mon widget de « Login » dans « header au niveau des widgets (WP-2.8), le widget ne s’affiche pas.
merci pour des compléments d’infos et désolé d’être si débutant avec WP; merci aussi pour le tuto.
Un super tuto, ça fonctionne parfaitement. Merci.
[...] fais un usage assez intensif des zones de Widgets dans WordPress. Pour m’y retrouver, j’utilise des intitulés aussi simples que génériques [...]
[...] Les widgets dans WordPress avec widgétisator ;) [...]