Pas de traductions

Mon premier plugin wordpress.

Si vous avez balayé un peu le code de wordpress, vous avez surement vu une ligne comme la suivante :

  1. <?php do_action('login_form'); ?>

Vous vous demandez à quoi ca sert ?

Cette ligne va exécuter les fonctions ajoutées à l'action login_form.

Grâce à la fonction add_action, on peut exécuter des fonctions dans des endroits du code.

Un exemple simple pour afficher le mot "hello" à la place de
do_action('register_form'); qui se trouve sur la page wp-login.php à la ligne 268

On déclare notre fonction afficheHello

  1.  
  2. function afficheHello() {echo "Hello";}

Ensuite on va ajouter à l'événement register_form la fonction afficheHello

  1.  
  2. <?php add_action('register_form', 'afficheHello');?>

Notre fonction afficheHello sera exécutée à la page wp-login.php à la ligne 268.

Grâce à ce mécanisme, on peut ajouter des fonctions externes au noyau de wordpress en utilisant des plugins.Pourquoi ne pas modifier formulaire de login directement ?

Une manipulation dans le code directement, vous empêchera de mettre à jour wordpress ultérieurement.

Le plugin suivant va nous permettre d'ajouter deux champs supplémentaires (Le nom et le prénom) au formulaire d'enregistrement d'un nouveau membre sans toucher au code wordpress.

Pour tester il suffit d'enregistrer le fichier suivant dans le répertoire wp-content/plugins/ ensuite de l'activer dans la page plugins dans l'interface admin.

Le commentaire au début du fichier est nécessaire pour afficher les informations dans la page des plugins :

  1.  
  2. <?php/*Plugin Name: Mon premier pluginPlugin URI: http://www.wareteam.com
  3.  
  4. Description: C'est un plugin qui permet d'ajouter un champ nom et un champ prenom a la page inscription. Ce plugin a pour but de vous apprendre le mecanisme des plugins.
  5.  
  6. Author: Yassine HANINI
  7.  
  8. Version: 1.0
  9.  
  10. Author URI: http://www.wareteam.com/
  11.  
  12. */

My first plugin

à la suite :

  1.  
  2. // Cette fonction affiche deux zones de texte nom et prénom
  3. function ajouterChamps() {
  4. echo "<p>
  5. <label>".__('Name:')."<br />
  6. <input type=\"text\" name=\"last_name\" id=\"last_name\" class=\"input\" value=\"".attribute_escape(stripslashes($_POST['last_name']))."\" size=\"25\" tabindex=30 /></label>
  7. </p>
  8. <p>
  9. <label>".__('Firstname:')."<br />
  10. <input type=\"text\" name=\"first_name\" id=\"first_name\" class=\"input\" value=\"".attribute_escape(stripslashes($_POST['first_name']))."\" size=\"25\" tabindex=40 /></label>
  11. </p>";
  12. }
  13.  
  14. // Mise à jour de la table user_meta avec les données nom et prénom
  15. // $userid est un parametre passer automatiquement à l'action de user_register
  16. function sauverChamps($userid) {
  17.  
  18. // appliquer un filtre sur les champs
  19. // strip_tags, trim, wp_filter_kses, wp_specialchars
  20. // voir fichier wp-includes/default-filters.php ligne 19
  21.  
  22. $first_name = apply_filters('pre_user_first_name', $_POST['first_name']);
  23. $last_name = apply_filters('pre_user_last_name', $_POST['last_name']);
  24.  
  25. // ajoute ou met à jour la table wp-usermeta.
  26. update_usermeta( $userid, 'last_name', $last_name);
  27. update_usermeta( $userid, 'first_name', $first_name);
  28. }
  29.  
  30. // execute la fonction ajouterChamps à l'action :
  31. // do_action('register_form'); se trouve sur la page wp-login.php à la ligne 268
  32. add_action('register_form', 'ajouterChamps');
  33.  
  34. // execute la fonction sauverChamps à l'action :
  35. // do_action('user_register', $user_id);   à la page registration.php à la ligne 137 lors de l'appel de la fonction wp_insert_user
  36. add_action('user_register', 'sauverChamps');
  37.  
  38. ?>

Vous pouvez consulter la liste des hooks :
http://codex.wordpress.org/Plugin_API/Action_Reference
WP Hooks List

Télécharger le plugin :
Mon premier plugin wordpress

Partager et découvrir : Ces icônes sont des liens vers des sites de partage de signet sociaux où les lecteurs peuvent partager et découvrir de nouveaux liens.
  • Digg
  • del.icio.us
  • BlogMemes
  • blogmarks
  • ThisNext
  • blogtercimlap

Related posts

Laisser un commentaire

Nom : (Required)

E-mail : (Required)

Site web :

Commentaire :