Text widget et PHP Code Widget: indispensables


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

4 Commentaires pour “Text widget et PHP Code Widget: indispensables

  1. Rétrolien : Tarabistouilles » Blog Archive » Text widget et PHP Code Widget: indispensables

  2. 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

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

?>