Développement d’extensions WordPress

1,574 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,574
On SlideShare
0
From Embeds
0
Number of Embeds
120
Actions
Shares
0
Downloads
67
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Développement d’extensions WordPress

  1. 1. Code is PoetryWordPress Algérie : wpdz.org Par Samir IZZA
  2. 2. Sommaire  Prérequis  Réglages du Plugin Introduction  Menu & Sous-Menu Avant de commencer  Page d’options Le Header  Intégration WordPress Licence du Plugin  Tables Personnalisées Les fonctions Activate et  Désinstaller le Plugin Desactivate  Sécurité du Plugin Internationalisation  Publier votre Plugin Les Constantes  Soumettre votre Plugin Actions & Filters
  3. 3. Prérequis Avoir des notions dans le langage PHPAvoir des connaissances rudimentaire à l’HTMLUn peu d’Anglais 
  4. 4. Introduction WordPress populaire.Facile à personnaliser.Comprendre l’API de WordPress.
  5. 5. Avant de commencer  Choisir un nom unique pour votre extensions. Les fichiers des plugins sont dans le répertoire wp- content/plugins/ de WordPress. Encodez toujours vos fichiers en UTF-8 Testez toujours l’extension avec la dernière version de WordPress.
  6. 6. Le Header  Doit être au top Doit être seulement sur le fichier principal Exemple de Header
  7. 7. Licence du Plugin  Quand on veut créer un plugin pour le public, il est recommandé d’inclure la licence du plugin juste en bas du Header. La licence n’est pas une garantie qui va vous lier au résultat que ça pourrai apporter aux différents sites qui utilisent votre plugin.
  8. 8. Licence du Plugin 
  9. 9. Fonctions Activate & Desactivate  register_activation_hook register_deactivation_hook
  10. 10. Internationalisation  L’internationalisation (i18n). L’internationalisation n’est pas obligatoire.1. La fonction _ _():2. La fonction _e():3. La fonction _ _ngettext (pluriel): Disant que vous souhaitez traduire la phrase suivante:
  11. 11. Internationalisation Ceci marche très bien si vous avez un seulmessage, mais si vous avez plus qu’un message? C’estlà que la fonction _ _ngettext résout ce problème.
  12. 12. Internationalisation  Maintenant que vous avez préparé votre plugin à la traduction, vous devriez charger le fichier de localisation:
  13. 13. Les Constantes  ➤ WP_CONTENT_URL: URL complet pour wp- content ➤ WP_CONTENT_DIR: Chemin du serveur du répertoire wp-content ➤ WP_PLUGIN_URL: URL complet pour le répertoire plugins ➤ WP_PLUGIN_DIR: Chemin du serveur du répertoire plugins ➤ WP_LANG_DIR: Chemin du serveur pour le répertoire langage
  14. 14. Actions & Filters 1. Actions: Les actions sont les crochets que le noyau de WordPress lance à des points spécifiques en cours dexécution, ou lorsque des événements spécifiques. Votre plugin peut spécifier que lune ou plusieurs de ses fonctions PHP sont exécutés à ces points.Syntaxe:
  15. 15. Actions & Filters 2. Filtres: Les filtres sont les crochets que WordPress lance pour modifier le texte de divers types, avant de lajouter à la base de données ou de lenvoyer au navigateur. Votre plugin peut spécifier que lune ou plusieurs de ses fonctions PHP est exécuté pour modifier le contenu du texte ou des données.Syntaxe:
  16. 16. Actions & Filters  Liste des Filtres: http://codex.wordpress.org/Plugin_API/Filter_Ref erence Liste des Actions: http://codex.wordpress.org/Plugin_API/Action_Re ference Un autre lien très recommandé: http://wordpress.org/extend/plugins/
  17. 17. Actions populaires publish_postcreate_categoryswitch_themewp_headadmin_head
  18. 18. Actions populaires wp_footerinitadmin_inituser_registercomment_post
  19. 19. Filtres populaires the_contentthe_content_rssthe_titlecomment_textwp_titlethe_permalink
  20. 20. Réglages du Plugin 1. Sauvegarde des options du Plugin: add_option et update_optionRécupérer une valeur:Supprimer une valeur :
  21. 21. Réglages du Plugin 2. Tableau d’options :
  22. 22. Réglages du Plugin  Pour récupérer les données de ces options, utilisez la fonction get_option
  23. 23. Menu & Sous-Menu 1. Créer un menu principal: Plusieurs pages de réglages  utiliser la fonction add_menu_page comme suit:
  24. 24. Menu & Sous-Menu 2. Créer un sous menu: Utilisez la fonction add_submenu_page comme suite :
  25. 25. Menu & Sous-Menu 3. Ajouter un sous menu au menu principal:
  26. 26. Menu & Sous-Menu  add_dashboard_page add_posts_page add_media_page add_links_page add_pages_page add_comments_page
  27. 27. Page d’options   Sauvegarder des options facilement  Comment créer des pages pour ces options ???  Créer un menu facilement  Et le contenu de sa page? Créer une page d’option = Créer la fonction de la page d’options que vous avez définit lors de la création de son menu.
  28. 28. Page d’options 
  29. 29. Page d’options  Le hook ‘admin_init’ exécute la fonction wpday_register_settings comme suit:  Définition des options
  30. 30. Page d’options  Création de la fonction de la page d’options:
  31. 31. Page d’options 
  32. 32. Intégration WordPress 1. Meta Box2. Sidebar3. Widget4. ShortCode
  33. 33. Meta Box 1. Meta Box: Pour ajouter une meta box il faut utiliser la fonction add_meta_box en utilisant les 6 paramètres suivants: Chaque paramètre indique comment et ou votre meta box sera affiché.
  34. 34. Meta Box  $id: l’attribut ID CSS du meta box $title: Le titre affiché dans le header du meta box $callback: Nom de la fonction pour afficher vos informations de Meta Box $page: Ou vous voulez afficher votre Meta Box (’post’, ‘page’, or ‘link’) $context: La partie de la page que le Meta Box doit afficher (’normal’,‘advanced’, or ‘side’) $priority: La priorité dans le context d’affichage du Meta Box (’high’, ‘core’, ‘default’, or ‘low’)
  35. 35. Meta Box  Maintenant il faut créer la fonction wpday_meta_box
  36. 36. Meta Box 
  37. 37. Meta Box  Création du Meta Box  OK Création du formulaire  OK Sauvegarder les données à chaque enregistrement d’une page  Pas encore : wpday_save_meta_box qui doit être déclencher après chaque action hook save_post
  38. 38. Meta Box  Affichage des valeurs de vos éléments MetaBox dans votre site:
  39. 39. Shortcodes 2. Shortcodes:
  40. 40. Shortcodes  [mysite]  http://example.com Vous pouvez aussi utiliser les paramètres dans les fonction du Shortcode [mysite param=value]
  41. 41. Widget 3. Widget:
  42. 42. Widget  Pour commencer, il faut étendre la classe WP_Widget en créant une nouvelle classe avec un nom unique Il reste à créer le formulaire des réglages du Widget
  43. 43. Widget 
  44. 44. Widget  Vous n’avez pas besoin d’ajouter la balise <form> ou le bouton de soumission, ceci est pris en charge par la classe de Widget. Il reste à sauvegarder les réglages de votre Widget:
  45. 45. Widget  La dernière fonction de votre classe wpday_widget, c’est celle qui affiche votre widget:
  46. 46. Tables Personnalisées  Il faut développer la fonction wpday_install()
  47. 47. Tables Personnalisées 
  48. 48. Désinstaller le Plugin  Une fonctionnalité intéressante à inclure dans votre plugin Le meilleur scénario de désinstallation est de ne laisser aucune trace du plugin.
  49. 49. Sécurité du Plugin  Si un plugin contient des failles de sécurité, il ouvre lensemble du site WordPress pour les pirates à faire des ravages. WordPress propose certains outils intégrés de sécurité que vous pouvez utiliser pour vous assurer que vos plugins sont aussi sûrs que possible.
  50. 50. Nonces C’est quoi les Nonces?Et comment créer manuellement et vérifier les nonces?
  51. 51. Nonces 
  52. 52. Nonces Soumission de formulaire  vérifier votre clé secrète nonceen utilisant la fonction check_admin_refererCette technique permet de se protéger contre le Cross-SiteScripting ou XSS.
  53. 53. Validation de données  Nommage standard des fonctions de validations:1) esc_: le prefix de la fonction d’échappement2) attr_: le contexte d’échappement (attr, html, js, sql, url, et url_raw)3) _e: le suffix optionnel de traduction (_ _ et _e)
  54. 54. Publier votre Plugin  Restrictions: Plugin doit être sous licence GPL Plugin ne doit pas faire quelque chose dillégal ou moralement choquant Vous devez utiliser Subversion (SVN) pour héberger votre plugin Plugin ne doit pas inclure des liens externes sur le site de lutilisateur (tel que « Powered by ») sans demander la permission à lutilisateur du plugin
  55. 55. Soumettre votre Plugin 1. Créer un compte WordPress.org2. Sur « Développer Center » cliquez sur « Add your Plugin »3. Remplir le formulaire:  Nom du plugin (Important)  Description du Plugin (fonctionnalités, but du plugin, les instructions dinstallation)  URL du Plugin (non requis).
  56. 56. Soumettre votre Plugin 4. Créez votre fichier readme.txt (Obligatoire)  Récupérer le standard de fichier sur votre compte Wordpress.org  Developper Center  Readme Standard  Remplir le fichier avec vos informations  Validez votre fichier à l’aide du validateur de WordPress: WordPress.org  Developper Center  Readme Validator5. Configuration SVN: le répertoire de Plugin de WordPress est sous SVN et pour publier un Plugin, vous auriez besoin d’installer et de configurer un client SVN (vous pouvez utiliser TortoiseSVN)
  57. 57. Soumettre votre Plugin  Après configuration de SVN  3 répertoires vont être créé branches tags trunk Mettre le contenu de votre plugin dans le répertoire trunk avec la présence du fichier readme.txt
  58. 58. Soumettre votre Plugin  Are you ready?  Yes !1. Commitez le contenu du trunk2. Taguez votre version  Après 15mn, le plugin apparaitera dans le répertoire de Plugin de WordPress
  59. 59. Questions / Réponses 

×