Trop longtemps, ma sidebar a refusé les widgets…
Elle n’était pas prête, se sentait mal à l’aise, et comptait sur moi pour faire vivre son fichier php… A chacune de mes tentatives désespérées de widgétisation, elle s’est sentie frustrée, démunie, privée de tout mode d’expression personnel. Elle tournait délibérément le dos au petit monde standardisé des widgets WordPress mais désespérait de se trouver ainsi ringardisée.
Et puis enfin, j’ai trouvé un argument de poids pour la convaincre de sauter le pas, et aujourd’hui, pleine d’espoir, elle ose regarder l’avenir avec optimisme. Elle a découvert qu’elle n’était pas la seule à souffrir de ce syndrome de refus et que de bonnes âmes avaient trouvé une solution efficace et élégante, sous la forme de plugins…Elle a enfin apprivoisé les widgets et ne le regrette pas!
Problématique
Dès l’activation d’un seul des widgets disponibles depuis l’onglet widgets du menu Apparence, WordPress ignore définitivement le contenu du fichier sidebar.php utilisé auparavant pour afficher le contenu personnalisé de la sidebar, WordPress ne prend plus en compte que les widgets activés et pour de nouvelles fonctionnalités, on doit obligatoirement passer par l’interface d’administration des widgets.
Résultat: moyennant parfois quelques petites retouches CSS, la plupart des fonctions widgétisées comme l’affichage des catégories ou des archives par exemple, est automatique et satisfaisant. Par contre et par définition, toutes les fonctions personnalisées non widgetisables ne s’affichent plus. Exemple sur ce blog: les phases de la lune.
La solution
Tombée par hasard sur un post de PunkPigeon, blog disparu depuis, vantant les mérites du plugin dénommé ExecPHP, et du Text Widget, dont honte à moi, je ne connaissais pas l’existence, j’ai adopté la méthode, et avec bonheur. Le Text Widget présent de base parmi les widgets WordPress dès la version 2.3, permet d’insérer, du texte mais aussi du code html, ExecPHP, autrement appelé PHP Code, fonctionne sur le même principe mais en plus permet l’intégration de php.
Comment ça marche?
Une fois installé parmi les plugins et activé, PHP Code apparait parmi la liste des widgets disponibles, tout comme text widget présent de base, et vous invite à placer votre code en son sein. Il va l’empaqueter, le « widgetiser ». Ainsi en gardant l’exemple des Phases de la Lune:
Le code tel qu’il était dans le fichier sidebar.php:
<div id= »sidebar »><ul><?php if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar() ) : ?>
<?php endif; ?>
<li class= »moon »><a href= »http://lune.esopole.com »>
<img src= »http://lune.esopole.com/phaselune_b.php » width= »190″ height= »138″ alt= « phases de la lune » />
</a></li></ul></div><!–/sidebar –>
Le code tel qu’il est placé dans l’un ou l’autre des widgets:
<ul><li class= »moon »><a href= »http://lune.esopole.com »>
<img src= »http://lune.esopole.com/phaselune_b.php » width= »190″ height= »138″ alt= « phases de la lune » />
</a></li></ul>
Un petit clic pour voir en grand…
Si dans le fichier functions.php, la fonction register_sidebar, indispensable pour le fonctionnement des widgets, précise qu’avant chaque widget, la balise <li> est ajoutée, alors il faut ajouter au code initial du widget dans PHP Code ou Text Widget, une balise <ul> supplémentaire pour respecter la syntaxe.
Fichier functions.php
<?php
if ( function_exists(‘register_sidebar’) ) register_sidebar(array(‘before_widget’ => ‘<li id= »%1$s » class= »widget %2$s »>’,
‘after_widget’ => ‘</li>’,
‘before_title’ => ‘<h2 class= »sidebartitle »>’,
‘after_title’ => ‘</h2>’, ));?>
Le fichier sidebar.php pourra ainsi être vidé du code devenu inutile et ne contiendra que l’appel à la sidebar dynamique.
Code résultant du fichier sidebar.php:
<div id= »sidebar »><ul><?php if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar() ) : ?>
<?php endif; ?></ul></div><!–/sidebar –>
| Pour aller plus loin et comprendre la Sidebar | |
|---|---|
| Structure d’une Sidebar statique | Blog d’Emmanuel Georjon |
| Widgétisez votre sidebar | Blog Fran6art |
| WordPress Support – Text Widget | Support WordPress |
| WordPress Support – PHP Code Widget | Support WordPress |
Contente que mon post ai pu t’aider :p
Très joli blog au passage
Rétrolien : Tarabistouilles » Blog Archive » Text widget et PHP Code Widget: indispensables
Bonjour,
je cherche désesperement à avoir une galerie photo miniature dans ma sidebar comme toi (Best shot) …Comment as-tu fait ?
Merci de ta réponse
J’utilise tout simplement NextGEN Gallery qui permet l’installation d’un widget paramétrable dans la sidebar sur un blog WordPress.
Pour télécharger le plugin pour WP: http://wordpress.org/extend/plugins/nextgen-gallery/
Site du plugin pour d’autres infos: http://alexrabe.de/wordpress-plugins/nextgen-gallery/