SlideShare une entreprise Scribd logo
1  sur  59
{
Développement
d’extensions
Code is Poetry
samirmember@gmail.com Par Samir IZZA
 Prérequis
 Introduction
 Avant de commencer
 Le Header
 Licence du Plugin
 Les fonctions Activate et
Desactivate
 Internationalisation
 Les Constantes
 Actions & Filters
 Réglages du Plugin
 Menu & Sous-Menu
 Page d’options
 Intégration WordPress
 Tables Personnalisées
 Désinstaller le Plugin
 Sécurité du Plugin
 Publier votre Plugin
 Soumettre votre Plugin
Sommaire
 Avoir des notions dans le langage PHP
 Avoir des connaissances rudimentaire à
l’HTML
 Un peu d’Anglais 
Prérequis
WordPress populaire.
Facile à personnaliser.
Comprendre l’API de WordPress.
Introduction
 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.
Avant de commencer
Le Header
 Doit être au top
 Doit être seulement sur le fichier principal
 Exemple de Header
Le Header
Licence du Plugin
Fonctions Activate & Desactivate
 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:
Internationalisation
Internationalisation
 Fin de traduction
 Chargement du fichier de localisation
Internationalisation
➤ WP_CONTENT_URL
➤ WP_CONTENT_DIR
➤ WP_PLUGIN_URL
➤ WP_PLUGIN_DIR
➤ WP_LANG_DIR
Les Constantes
1. Actions: Les actions sont les crochets que le
noyau de WordPress lance à des points
spécifiques en cours d'exécution, ou lorsque
des événements spécifiques. Votre plugin
peut spécifier que l'une ou plusieurs de ses
fonctions PHP sont exécutés à ces points.
Syntaxe:
Actions & Filters
2. Filtres: Les filtres sont les crochets que
WordPress lance pour modifier le texte de
divers types, avant de l'ajouter à la base de
données ou de l'envoyer au navigateur. Votre
plugin peut spécifier que l'une ou plusieurs de
ses fonctions PHP est exécuté pour modifier le
contenu du texte ou des données.
Syntaxe:
Actions & Filters
 Liste des Filtres:
http://codex.wordpress.org/Plugin_API/Filter_Reference
 Liste des Actions:
http://codex.wordpress.org/Plugin_API/Action_Reference
 Un autre lien très recommandé:
http://wordpress.org/extend/plugins/
Actions & Filters
 publish_post
 create_category
 switch_theme
 wp_head
 admin_head
Actions populaires
 wp_footer
 init
 admin_init
 user_register
 comment_post
Actions populaires
Filtres populaires
 the_content
 the_content_rss
 the_title
 comment_text
 wp_title
 the_permalink
1. Sauvegarde des options du Plugin: add_option et
update_option
Récupérer une valeur:
Supprimer une valeur :
Réglages du Plugin
2. Tableau d’options :
Réglages du Plugin
 Pour récupérer les données de ces options, utilisez
la fonction get_option
Réglages du Plugin
Menu principal Sous menu
Menu & Sous-Menu
1. Créer un menu principal:
Plusieurs pages de réglages  utiliser la
fonction add_menu_page comme suit:
Menu & Sous-Menu
2. Créer un sous menu:
Utilisez la fonction
add_submenu_page
Menu & Sous-Menu
3. Ajouter un sous menu au menu principal
Menu & Sous-Menu
 add_dashboard_page
 add_posts_page
 add_media_page
 add_links_page
 add_pages_page
 add_comments_page
Menu & Sous-Menu
  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.
Page d’options
Page d’options
 Le hook ‘admin_init’ exécute la fonction
wpday_register_settings comme suit:
  Définition des options
Page d’options
 Création de la fonction de la page d’options:
Page d’options
Page d’options
1. Meta Box
2. Sidebar
3. Widget
4. ShortCode
Intégration WordPress
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é.
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’)
Meta Box
 Maintenant il faut créer la fonction
wpday_meta_box
Meta Box
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
Meta Box
 Affichage des valeurs de vos éléments MetaBox
dans votre site:
Meta Box
2. Shortcodes:
Shortcodes
 [mysite]  http://example.com
 Vous pouvez aussi utiliser les paramètres dans
les fonction du Shortcode
[mysite param=value]
Shortcodes
3. Widget:
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
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:
Widget
Widget
 La dernière fonction de votre classe
wpday_widget, c’est celle qui affiche votre
widget:
Widget
 Il faut développer la fonction wpday_install()
Tables Personnalisées
Tables Personnalisées
 Une fonctionnalité intéressante à inclure dans
votre plugin
 Le meilleur scénario de désinstallation est de ne
laisser aucune trace du plugin.
Désinstaller le Plugin
 Si un plugin contient des failles de sécurité, il
ouvre l'ensemble 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.
Sécurité du Plugin
 C’est quoi les Nonces?
 Et comment créer manuellement et vérifier les
nonces?
Nonces
Nonces
Soumission de formulaire  vérifier votre clé
secrète nonce en utilisant la fonction
check_admin_referer
Cette technique permet de se protéger contre le
Cross-Site Scripting ou XSS.
Nonces
 Nommage standard des fonctions de
validations:
Validation de données
1) esc_: le prefix de la fonction d’échappement
2) attr_: le contexte d’échappement
(attr, html, js, sql, url, et url_raw)
3) _e: le suffix optionnel de traduction (_ _ et _e)
Restrictions:
 Plugin doit être sous licence GPL
 Plugin ne doit pas faire quelque chose d'illé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 l'utilisateur (tel que « Powered by ») sans
demander la permission à l'utilisateur du plugin
Publier votre Plugin
1. Créer un compte WordPress.org
2. 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 d'installation)
 URL du Plugin (non requis).
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 Validator
5. 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)
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
Soumettre votre Plugin
 Are you ready?  Yes !
1. Commitez le contenu du trunk
2. Taguez votre version
  Après 15mn, le plugin apparaitra dans le
répertoire de Plugin de WordPress
Soumettre votre Plugin
Questions / Réponses

Contenu connexe

Tendances

Présentation Joomla!
Présentation Joomla!Présentation Joomla!
Présentation Joomla!nomadz
 
10 astuces pour se faciliter l'administration sous Joomla! Joomladay France 2015
10 astuces pour se faciliter l'administration sous Joomla! Joomladay France 201510 astuces pour se faciliter l'administration sous Joomla! Joomladay France 2015
10 astuces pour se faciliter l'administration sous Joomla! Joomladay France 2015Com'3elles - www.com3elles.com
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web servicesLilia Sfaxi
 
Installation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de TomcatInstallation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de TomcatMohamed Ben Bouzid
 
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1Addi Ait-Mlouk
 

Tendances (8)

Aeris web components
Aeris web componentsAeris web components
Aeris web components
 
Présentation Joomla!
Présentation Joomla!Présentation Joomla!
Présentation Joomla!
 
10 astuces pour se faciliter l'administration sous Joomla! Joomladay France 2015
10 astuces pour se faciliter l'administration sous Joomla! Joomladay France 201510 astuces pour se faciliter l'administration sous Joomla! Joomladay France 2015
10 astuces pour se faciliter l'administration sous Joomla! Joomladay France 2015
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
Installation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de TomcatInstallation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de Tomcat
 
Netbeans Install
Netbeans InstallNetbeans Install
Netbeans Install
 
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
 
Formation cakephp
Formation cakephpFormation cakephp
Formation cakephp
 

En vedette

Installation et Utilisation de Wordpress sous Wamp
Installation et Utilisation de Wordpress sous WampInstallation et Utilisation de Wordpress sous Wamp
Installation et Utilisation de Wordpress sous WampIZZA Samir
 
Sécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webSécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webIZZA Samir
 
Créer un site internet ou un blog
Créer un site internet ou un blogCréer un site internet ou un blog
Créer un site internet ou un blogSéverine Alix
 
Les outils du web atelier 1bis
Les outils du web atelier 1bisLes outils du web atelier 1bis
Les outils du web atelier 1bisSéverine Alix
 
Référencement et analyse site internet doc de travail
Référencement et analyse site internet doc de travailRéférencement et analyse site internet doc de travail
Référencement et analyse site internet doc de travailSéverine Alix
 
Buzzthebrand 2011 : Organiser le Digital en Interne
Buzzthebrand 2011 : Organiser le Digital en InterneBuzzthebrand 2011 : Organiser le Digital en Interne
Buzzthebrand 2011 : Organiser le Digital en InternePhilippe Vidal
 
Internet & moi : le vocabulaire de base
Internet & moi : le vocabulaire de baseInternet & moi : le vocabulaire de base
Internet & moi : le vocabulaire de baseCDI CLG Matisse
 
Gestion des donnees personnelles.
Gestion des donnees personnelles.Gestion des donnees personnelles.
Gestion des donnees personnelles.olivier
 
Mise en place et utilisation d'une plateforme de travail collaboratif par Int...
Mise en place et utilisation d'une plateforme de travail collaboratif par Int...Mise en place et utilisation d'une plateforme de travail collaboratif par Int...
Mise en place et utilisation d'une plateforme de travail collaboratif par Int...CYB@RDECHE
 
Stratégies de présence et de marketing digital
Stratégies de présence et de marketing digitalStratégies de présence et de marketing digital
Stratégies de présence et de marketing digitalSamir Bellik
 
Booster votre visibilité sur les reseaux sociaux
Booster votre visibilité sur les reseaux sociauxBooster votre visibilité sur les reseaux sociaux
Booster votre visibilité sur les reseaux sociauxSamir Bellik
 
Mobile Apps, Stratégies et Enjeux
Mobile Apps, Stratégies et EnjeuxMobile Apps, Stratégies et Enjeux
Mobile Apps, Stratégies et EnjeuxSamir Bellik
 
Les solutions mobiles (potentiel et enjeux)
Les solutions mobiles (potentiel et enjeux)Les solutions mobiles (potentiel et enjeux)
Les solutions mobiles (potentiel et enjeux)SCALA
 
Concevoir et déployer sa stratégie digitale
Concevoir et déployer sa stratégie digitaleConcevoir et déployer sa stratégie digitale
Concevoir et déployer sa stratégie digitaleQuinchy Riya
 
8 secrets de productivité (développement personnel)
8 secrets de productivité (développement personnel)8 secrets de productivité (développement personnel)
8 secrets de productivité (développement personnel)SmartsCube
 
Usages internet adolescents
Usages internet adolescentsUsages internet adolescents
Usages internet adolescentsCToutNet
 
Les outils du_developpement_personnel_manager
Les outils du_developpement_personnel_managerLes outils du_developpement_personnel_manager
Les outils du_developpement_personnel_managerBAMBA Athanaz
 
Votre présence sur Internet
Votre présence sur InternetVotre présence sur Internet
Votre présence sur InternetLe Moulin Digital
 

En vedette (20)

Installation et Utilisation de Wordpress sous Wamp
Installation et Utilisation de Wordpress sous WampInstallation et Utilisation de Wordpress sous Wamp
Installation et Utilisation de Wordpress sous Wamp
 
Sécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webSécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du web
 
Créer un site internet ou un blog
Créer un site internet ou un blogCréer un site internet ou un blog
Créer un site internet ou un blog
 
Les outils du web atelier 1bis
Les outils du web atelier 1bisLes outils du web atelier 1bis
Les outils du web atelier 1bis
 
Référencement et analyse site internet doc de travail
Référencement et analyse site internet doc de travailRéférencement et analyse site internet doc de travail
Référencement et analyse site internet doc de travail
 
Buzzthebrand 2011 : Organiser le Digital en Interne
Buzzthebrand 2011 : Organiser le Digital en InterneBuzzthebrand 2011 : Organiser le Digital en Interne
Buzzthebrand 2011 : Organiser le Digital en Interne
 
Internet & moi : le vocabulaire de base
Internet & moi : le vocabulaire de baseInternet & moi : le vocabulaire de base
Internet & moi : le vocabulaire de base
 
Gestion des donnees personnelles.
Gestion des donnees personnelles.Gestion des donnees personnelles.
Gestion des donnees personnelles.
 
Mise en place et utilisation d'une plateforme de travail collaboratif par Int...
Mise en place et utilisation d'une plateforme de travail collaboratif par Int...Mise en place et utilisation d'une plateforme de travail collaboratif par Int...
Mise en place et utilisation d'une plateforme de travail collaboratif par Int...
 
Les nouveaux outils du travail interministériel : la dématérialisation
Les nouveaux outils du travail interministériel : la dématérialisationLes nouveaux outils du travail interministériel : la dématérialisation
Les nouveaux outils du travail interministériel : la dématérialisation
 
Stratégies de présence et de marketing digital
Stratégies de présence et de marketing digitalStratégies de présence et de marketing digital
Stratégies de présence et de marketing digital
 
Booster votre visibilité sur les reseaux sociaux
Booster votre visibilité sur les reseaux sociauxBooster votre visibilité sur les reseaux sociaux
Booster votre visibilité sur les reseaux sociaux
 
Mobile Apps, Stratégies et Enjeux
Mobile Apps, Stratégies et EnjeuxMobile Apps, Stratégies et Enjeux
Mobile Apps, Stratégies et Enjeux
 
Les solutions mobiles (potentiel et enjeux)
Les solutions mobiles (potentiel et enjeux)Les solutions mobiles (potentiel et enjeux)
Les solutions mobiles (potentiel et enjeux)
 
Business Plan d’une application mobile
Business Plan d’une application mobileBusiness Plan d’une application mobile
Business Plan d’une application mobile
 
Concevoir et déployer sa stratégie digitale
Concevoir et déployer sa stratégie digitaleConcevoir et déployer sa stratégie digitale
Concevoir et déployer sa stratégie digitale
 
8 secrets de productivité (développement personnel)
8 secrets de productivité (développement personnel)8 secrets de productivité (développement personnel)
8 secrets de productivité (développement personnel)
 
Usages internet adolescents
Usages internet adolescentsUsages internet adolescents
Usages internet adolescents
 
Les outils du_developpement_personnel_manager
Les outils du_developpement_personnel_managerLes outils du_developpement_personnel_manager
Les outils du_developpement_personnel_manager
 
Votre présence sur Internet
Votre présence sur InternetVotre présence sur Internet
Votre présence sur Internet
 

Similaire à Dévelopement extensions WordPress

Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPressChi Nacim
 
Les défauts de WordPress pour le SEO
Les défauts de WordPress pour le SEOLes défauts de WordPress pour le SEO
Les défauts de WordPress pour le SEODaniel Roch - SeoMix
 
Liferay france symposium 2012 - montée de version d’une instance liferay
Liferay france symposium 2012 - montée de version d’une instance liferayLiferay france symposium 2012 - montée de version d’une instance liferay
Liferay france symposium 2012 - montée de version d’une instance liferaySébastien Le Marchand
 
WP day Algérie : Concevoir un plugin WordPress
WP day Algérie : Concevoir un plugin WordPressWP day Algérie : Concevoir un plugin WordPress
WP day Algérie : Concevoir un plugin WordPressimath
 
WordPress Bases e-learning
WordPress Bases e-learningWordPress Bases e-learning
WordPress Bases e-learningAntonio Soto
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv PsGregory Renard
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
Systèmes de Gestion de Contenu (SGC)
Systèmes de Gestion de Contenu (SGC)Systèmes de Gestion de Contenu (SGC)
Systèmes de Gestion de Contenu (SGC)Laurent Moccozet
 
Projet fin annee 2011 master min ISAMM
Projet fin annee 2011 master min ISAMMProjet fin annee 2011 master min ISAMM
Projet fin annee 2011 master min ISAMMAbdelmonem NAAMANE
 
Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007Netvibes
 
Developpement_dun_site_web_Developpement.pdf
Developpement_dun_site_web_Developpement.pdfDeveloppement_dun_site_web_Developpement.pdf
Developpement_dun_site_web_Developpement.pdfSofianeHassine2
 
Developpement dun site_web_developpement
Developpement dun site_web_developpementDeveloppement dun site_web_developpement
Developpement dun site_web_developpementmosalah38
 
Creer un site internet sous WordPress
Creer un site internet sous WordPress Creer un site internet sous WordPress
Creer un site internet sous WordPress Erwan Tanguy
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
 
WordPress Auto Affiche
WordPress Auto AfficheWordPress Auto Affiche
WordPress Auto Affichejimmyroggers
 

Similaire à Dévelopement extensions WordPress (20)

Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPress
 
Les défauts de WordPress pour le SEO
Les défauts de WordPress pour le SEOLes défauts de WordPress pour le SEO
Les défauts de WordPress pour le SEO
 
Liferay france symposium 2012 - montée de version d’une instance liferay
Liferay france symposium 2012 - montée de version d’une instance liferayLiferay france symposium 2012 - montée de version d’une instance liferay
Liferay france symposium 2012 - montée de version d’une instance liferay
 
WP day Algérie : Concevoir un plugin WordPress
WP day Algérie : Concevoir un plugin WordPressWP day Algérie : Concevoir un plugin WordPress
WP day Algérie : Concevoir un plugin WordPress
 
WordPress Bases e-learning
WordPress Bases e-learningWordPress Bases e-learning
WordPress Bases e-learning
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv Ps
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Intro appli facebook_v1.1
Intro appli facebook_v1.1Intro appli facebook_v1.1
Intro appli facebook_v1.1
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Systèmes de Gestion de Contenu (SGC)
Systèmes de Gestion de Contenu (SGC)Systèmes de Gestion de Contenu (SGC)
Systèmes de Gestion de Contenu (SGC)
 
Prise en main de Joomla
Prise en main de JoomlaPrise en main de Joomla
Prise en main de Joomla
 
Projet fin annee 2011 master min ISAMM
Projet fin annee 2011 master min ISAMMProjet fin annee 2011 master min ISAMM
Projet fin annee 2011 master min ISAMM
 
Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007Atelier autour de UWA à ParisWeb 2007
Atelier autour de UWA à ParisWeb 2007
 
Sécuriser son site wordpress
Sécuriser son site wordpressSécuriser son site wordpress
Sécuriser son site wordpress
 
Developpement_dun_site_web_Developpement.pdf
Developpement_dun_site_web_Developpement.pdfDeveloppement_dun_site_web_Developpement.pdf
Developpement_dun_site_web_Developpement.pdf
 
Developpement dun site_web_developpement
Developpement dun site_web_developpementDeveloppement dun site_web_developpement
Developpement dun site_web_developpement
 
Creer un site internet sous WordPress
Creer un site internet sous WordPress Creer un site internet sous WordPress
Creer un site internet sous WordPress
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
Atelier template
Atelier templateAtelier template
Atelier template
 
WordPress Auto Affiche
WordPress Auto AfficheWordPress Auto Affiche
WordPress Auto Affiche
 

Dévelopement extensions WordPress

  • 2.  Prérequis  Introduction  Avant de commencer  Le Header  Licence du Plugin  Les fonctions Activate et Desactivate  Internationalisation  Les Constantes  Actions & Filters  Réglages du Plugin  Menu & Sous-Menu  Page d’options  Intégration WordPress  Tables Personnalisées  Désinstaller le Plugin  Sécurité du Plugin  Publier votre Plugin  Soumettre votre Plugin Sommaire
  • 3.  Avoir des notions dans le langage PHP  Avoir des connaissances rudimentaire à l’HTML  Un peu d’Anglais  Prérequis
  • 4. WordPress populaire. Facile à personnaliser. Comprendre l’API de WordPress. Introduction
  • 5.  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. Avant de commencer
  • 6. Le Header  Doit être au top  Doit être seulement sur le fichier principal  Exemple de Header Le Header
  • 8. Fonctions Activate & Desactivate
  • 9.  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: Internationalisation
  • 11.  Fin de traduction  Chargement du fichier de localisation Internationalisation
  • 12. ➤ WP_CONTENT_URL ➤ WP_CONTENT_DIR ➤ WP_PLUGIN_URL ➤ WP_PLUGIN_DIR ➤ WP_LANG_DIR Les Constantes
  • 13. 1. Actions: Les actions sont les crochets que le noyau de WordPress lance à des points spécifiques en cours d'exécution, ou lorsque des événements spécifiques. Votre plugin peut spécifier que l'une ou plusieurs de ses fonctions PHP sont exécutés à ces points. Syntaxe: Actions & Filters
  • 14. 2. Filtres: Les filtres sont les crochets que WordPress lance pour modifier le texte de divers types, avant de l'ajouter à la base de données ou de l'envoyer au navigateur. Votre plugin peut spécifier que l'une ou plusieurs de ses fonctions PHP est exécuté pour modifier le contenu du texte ou des données. Syntaxe: Actions & Filters
  • 15.  Liste des Filtres: http://codex.wordpress.org/Plugin_API/Filter_Reference  Liste des Actions: http://codex.wordpress.org/Plugin_API/Action_Reference  Un autre lien très recommandé: http://wordpress.org/extend/plugins/ Actions & Filters
  • 16.  publish_post  create_category  switch_theme  wp_head  admin_head Actions populaires
  • 17.  wp_footer  init  admin_init  user_register  comment_post Actions populaires
  • 18. Filtres populaires  the_content  the_content_rss  the_title  comment_text  wp_title  the_permalink
  • 19. 1. Sauvegarde des options du Plugin: add_option et update_option Récupérer une valeur: Supprimer une valeur : Réglages du Plugin
  • 20. 2. Tableau d’options : Réglages du Plugin
  • 21.  Pour récupérer les données de ces options, utilisez la fonction get_option Réglages du Plugin
  • 22. Menu principal Sous menu Menu & Sous-Menu
  • 23. 1. Créer un menu principal: Plusieurs pages de réglages  utiliser la fonction add_menu_page comme suit: Menu & Sous-Menu
  • 24. 2. Créer un sous menu: Utilisez la fonction add_submenu_page Menu & Sous-Menu
  • 25. 3. Ajouter un sous menu au menu principal Menu & Sous-Menu
  • 26.  add_dashboard_page  add_posts_page  add_media_page  add_links_page  add_pages_page  add_comments_page Menu & Sous-Menu
  • 27.   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. Page d’options
  • 29.  Le hook ‘admin_init’ exécute la fonction wpday_register_settings comme suit:   Définition des options Page d’options
  • 30.  Création de la fonction de la page d’options: Page d’options
  • 32. 1. Meta Box 2. Sidebar 3. Widget 4. ShortCode Intégration WordPress
  • 33. 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é. Meta Box
  • 34.  $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’) Meta Box
  • 35.  Maintenant il faut créer la fonction wpday_meta_box Meta Box
  • 37.  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 Meta Box
  • 38.  Affichage des valeurs de vos éléments MetaBox dans votre site: Meta Box
  • 40.  [mysite]  http://example.com  Vous pouvez aussi utiliser les paramètres dans les fonction du Shortcode [mysite param=value] Shortcodes
  • 42.  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 Widget
  • 43.  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: Widget
  • 45.  La dernière fonction de votre classe wpday_widget, c’est celle qui affiche votre widget: Widget
  • 46.  Il faut développer la fonction wpday_install() Tables Personnalisées
  • 48.  Une fonctionnalité intéressante à inclure dans votre plugin  Le meilleur scénario de désinstallation est de ne laisser aucune trace du plugin. Désinstaller le Plugin
  • 49.  Si un plugin contient des failles de sécurité, il ouvre l'ensemble 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. Sécurité du Plugin
  • 50.  C’est quoi les Nonces?  Et comment créer manuellement et vérifier les nonces? Nonces
  • 52. Soumission de formulaire  vérifier votre clé secrète nonce en utilisant la fonction check_admin_referer Cette technique permet de se protéger contre le Cross-Site Scripting ou XSS. Nonces
  • 53.  Nommage standard des fonctions de validations: Validation de données 1) esc_: le prefix de la fonction d’échappement 2) attr_: le contexte d’échappement (attr, html, js, sql, url, et url_raw) 3) _e: le suffix optionnel de traduction (_ _ et _e)
  • 54. Restrictions:  Plugin doit être sous licence GPL  Plugin ne doit pas faire quelque chose d'illé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 l'utilisateur (tel que « Powered by ») sans demander la permission à l'utilisateur du plugin Publier votre Plugin
  • 55. 1. Créer un compte WordPress.org 2. 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 d'installation)  URL du Plugin (non requis). Soumettre votre Plugin
  • 56. 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 Validator 5. 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) Soumettre votre Plugin
  • 57.  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 Soumettre votre Plugin
  • 58.  Are you ready?  Yes ! 1. Commitez le contenu du trunk 2. Taguez votre version   Après 15mn, le plugin apparaitra dans le répertoire de Plugin de WordPress Soumettre votre Plugin