développement d’extensions wordpress

59
Développement d’extensions Code is Poetry WordPress Algérie : wpdz.org Par Samir IZZA

Upload: chi-nacim

Post on 22-Dec-2014

883 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Développement d’extensions WordPress

Développement d’extensions

Code is Poetry

WordPress Algérie : wpdz.org Par Samir IZZA

Page 2: Développement d’extensions WordPress

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

Page 3: Développement d’extensions WordPress

Avoir des notions dans le langage PHP

Avoir des connaissances rudimentaire à l’HTML

Un peu d’Anglais

Prérequis

Page 4: Développement d’extensions WordPress

WordPress populaire. Facile à personnaliser. Comprendre l’API de

WordPress.

Introduction

Page 5: Développement d’extensions WordPress

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

Page 6: Développement d’extensions WordPress

Le Header

Doit être au top Doit être seulement sur le fichier principal Exemple de Header

Page 7: Développement d’extensions WordPress

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.

Licence du Plugin

Page 8: Développement d’extensions WordPress

Licence du Plugin

Page 9: Développement d’extensions WordPress

register_activation_hook

register_deactivation_hook

Fonctions Activate & Desactivate

Page 10: Développement d’extensions WordPress

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

Page 11: Développement d’extensions WordPress

Ceci marche très bien si vous avez un seul message, mais si vous avez plus qu’un message? C’est là que la fonction _ _ngettext résout ce problème.

Internationalisation

Page 12: Développement d’extensions WordPress

Maintenant que vous avez préparé votre

plugin à la traduction, vous devriez charger le fichier de localisation:

Internationalisation

Page 13: Développement d’extensions WordPress

➤ 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

Les Constantes

Page 14: Développement d’extensions WordPress

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

Page 15: Développement d’extensions WordPress

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

Page 16: Développement d’extensions WordPress

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

Page 17: Développement d’extensions WordPress

publish_post

create_category

switch_theme

wp_head

admin_head

Actions populaires

Page 18: Développement d’extensions WordPress

wp_footer

init

admin_init

user_register

comment_post

Actions populaires

Page 19: Développement d’extensions WordPress

the_content the_content_rss the_title comment_text wp_title the_permalink

Filtres populaires

Page 20: Développement d’extensions WordPress

1. Sauvegarde des options du Plugin: add_option

et update_option

Récupérer une valeur:

Supprimer une valeur :

Réglages du Plugin

Page 21: Développement d’extensions WordPress

2. Tableau d’options :

Réglages du Plugin

Page 22: Développement d’extensions WordPress

Pour récupérer les données de ces options,

utilisez la fonction get_option

Réglages du Plugin

Page 23: Développement d’extensions WordPress

1. Créer un menu principal:

Plusieurs pages de réglages utiliser la fonction add_menu_page comme suit:

Menu & Sous-Menu

Page 24: Développement d’extensions WordPress

2. Créer un sous menu:

Utilisez la fonction add_submenu_page comme suite :

Menu & Sous-Menu

Page 25: Développement d’extensions WordPress

3. Ajouter un sous menu au menu principal:

Menu & Sous-Menu

Page 26: Développement d’extensions WordPress

add_dashboard_page add_posts_page add_media_page add_links_page add_pages_page add_comments_page

Menu & Sous-Menu

Page 27: Développement d’extensions WordPress

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 28: Développement d’extensions WordPress

Page d’options

Page 29: Développement d’extensions WordPress

Le hook ‘admin_init’ exécute la fonction

wpday_register_settings comme suit:

Définition des options

Page d’options

Page 30: Développement d’extensions WordPress

Création de la fonction de la page d’options:

Page d’options

Page 31: Développement d’extensions WordPress

Page d’options

Page 32: Développement d’extensions WordPress

1. Meta Box

2. Sidebar

3. Widget

4. ShortCode

Intégration WordPress

Page 33: Développement d’extensions 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

Page 34: Développement d’extensions WordPress

$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

Page 35: Développement d’extensions WordPress

Maintenant il faut créer la fonction wpday_meta_box

Meta Box

Page 36: Développement d’extensions WordPress

Meta Box

Page 37: Développement d’extensions WordPress

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

Page 38: Développement d’extensions WordPress

Affichage des valeurs de vos éléments

MetaBox dans votre site:

Meta Box

Page 39: Développement d’extensions WordPress

2. Shortcodes:

Shortcodes

Page 40: Développement d’extensions WordPress

[mysite] http://example.com Vous pouvez aussi utiliser les paramètres dans

les fonction du Shortcode [mysite param=value]

Shortcodes

Page 41: Développement d’extensions WordPress

3. Widget:

Widget

Page 42: Développement d’extensions WordPress

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

Page 43: Développement d’extensions WordPress

Widget

Page 44: Développement d’extensions WordPress

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

Page 45: Développement d’extensions WordPress

La dernière fonction de votre classe

wpday_widget, c’est celle qui affiche votre widget:

Widget

Page 46: Développement d’extensions WordPress

Il faut développer la fonction wpday_install()

Tables Personnalisées

Page 47: Développement d’extensions WordPress

Tables Personnalisées

Page 48: Développement d’extensions WordPress

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

Page 49: Développement d’extensions WordPress

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

Page 50: Développement d’extensions WordPress

C’est quoi les Nonces?

Et comment créer manuellement et vérifier les nonces?

Nonces

Page 51: Développement d’extensions WordPress

Nonces

Page 52: Développement d’extensions WordPress

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

Page 53: Développement d’extensions WordPress

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)

Page 54: Développement d’extensions WordPress

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

Page 55: Développement d’extensions WordPress

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 d'installation) URL du Plugin (non requis).

Soumettre votre Plugin

Page 56: Développement d’extensions WordPress

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

Page 57: Développement d’extensions WordPress

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

Page 58: Développement d’extensions WordPress

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

Soumettre votre Plugin

Page 59: Développement d’extensions WordPress

Questions / Réponses