Websourcing.fr

Websourcing.fr » ActualitĂ©s, Web, Logiciels et Fun

Image pour [Wordpress] Comment écrire un widget pour Wordpress 2.8 (nouvelle API)?

[Wordpress] Comment écrire un widget pour Wordpress 2.8 (nouvelle API)?

La nouvelle version de Wordpress, numĂ©rotĂ©e 2.8, devrait sortir d’ici quelques jours.

Très attendue, cette nouvelle mouture apporte un grand nombre d’amĂ©liorations. On y trouve notamment une toute nouvelle API de Widgets, qui se veut beaucoup plus simple et mieux organisĂ©e.

L’Ă©quipe de dĂ©veloppement de Wordpress avait d’ailleurs dĂ©voilĂ©e une image exclusive, il y a quelques semaine de cela.

wordpress_28_widgets

Le système utilise en effet des mécanismes AJAX pour les mises à jour (enfin) et propose une interface orientée objet. Ainsi toutes les fonctionnalités possèdent leur propre fonction PHP.

Autre innovation de taille, chaque widget pourra ĂŞtre utilisĂ© par plusieurs « barres » (c’est mon tagcloud qui va ĂŞtre content ;) )

Nous allons voir comment créer un widget pour Wordpress 2.8.

Tout d’abord chaque widget Ă©tendra dĂ©sormais une interface fournit par Wordpress et possède un constructeur.

class Mon_Widget extends WP_Widget{
   function Mon_Widget() {
      $widget_ops = array(
         'classname' => 'mon_widget', // l'identifiant du widget
         'description' => 'un widget tout simple qui ne fait rien' ); // la description

      $this->WP_Widget('mon_widget', 'Mon widget', $widget_ops);
   }
...
}

Pour moi qui vient du monde Java, ce changement m’emplit de joie.

L’interface WP_Widget impose de crĂ©er deux mĂ©thodes: function widget() et function update().

function widget($args, $instance) {
 //cette fonction réalise le rendu graphique du widget
 echo '<p>Bonjour ! Bienvenu sur Websourcing.fr.</p>';
}

function update($new_instance, $old_instance) {
//cette fonction met Ă  jour le widget
}

Une troisième fonction optionnelle permet de crĂ©er le formulaire dans l’interface d’administration (la petite boite qui reprĂ©sente le widget). Vous pouvez ainsi proposer de changer certains paramètres directement dans l’interface d’administration.

function form($instance) {
//pour ajouter un paramètre X
$X = strip_tags($instance['X']);
<p>
<label for="<?php echo $this->get_field_id('X'); ?>">
Valeur de X: <input id="<?php echo $this->get_field_id('X'); ?>" name="<?php echo $this->get_field_name('X'); ?>" type="text" value="<?php echo attribute_escape($X); ?>" />
</label>
</p>
}

Remarquez que vous n’avez plus besoin de rĂ©cupĂ©rer les options en utilisant la fonction get_otions(). DĂ©sormais les variables sont directement attachĂ©es Ă  l’instance $instance du widget (d’oĂą la possibilitĂ© d’avoir plusieurs widgets d’un mĂŞme type).

Enfin, pour enregistrer le widget, il faut utiliser la fonction suivante.

register_widget('Mon_Widget'); // on utilise ici le nom de la classe, c'est beaucoup mieux qu'avant.

Je trouve la nouvelle API beaucoup plus évidente. Tout est à sa place et les fonctions sont suffisamment parlantes. Cela nous promet des plugins de meilleure qualité.

Et vous qu’en pensez vous ?


Cet article vous a plu ?

Commenter Laissez un commentaire | Recevez les mises à jour Souscrivez au flux RSS | Partager : Twitter AddInto Fuzz del.icio.us Wikio FR Blogonet
Websourcing.fr - Tous droits réservés. Reproduction interdite sans accord préalable.
  1. Répondre Citer #1 par br1o le 11 juillet 2009 - 14:14

    très intĂ©ressant en effet, je vais ajouter ce billet dans ma liste des bon tuyaux de br1o ;) Au fait, c’est quoi le plugin que tu utilise pour les exemples de code ? Merci.

  2. Répondre Citer #3 par br1o le 12 juillet 2009 - 00:59

    oki, merci pour l’info ;) a++

  3. Répondre Citer #4 par OstĂ©opathe le 3 mars 2010 - 20:56

    Merci, je vais essayer.
    par contre, il faut coller tout cela dans un fichier php ?

    Merci

    • Répondre Citer #5 par Lionel Roux le 4 mars 2010 - 11:56

      Oui il faut le mettre dans un fichier PHP. le mieux étant de créer un plugin et de tout déposer dans le répertoire wp-content/plugins.

(Ne sera pas publié)
  1. Sur [Wordpress] Comment écrire un widget pour Wordpress 2.8 (nouvelle API)? - Websourcing.fr le 13 juin 2009 - 13:07

    [...] this link: [Wordpress] Comment Ă©crire un widget pour Wordpress 2.8 (nouvelle API)? – Websourcing.fr Share and [...]

  2. Sur Les bons liens Wordpress le 10 septembre 2009 - 23:27

    [...] Utiliser la nouvelle API de Wordpress 2.8 pour les widget — Nouveau contructeur pour une programmation plus moderne, ce sont les développeurs qui vont être content (n'est-ce pas Mehdi) ! [...]