SlideShare une entreprise Scribd logo
Créer
uneextension
WordPress
Ré-Requispourfaireuneextension:
1.Lesélémentsdestructure
(if/else,for/foreach,switch,while,…)
2.Variable,typesetglobales
3.Lireunefonction
4.Écrireunefonction
5.Savoircommentfonctionne
WordPress
WordPresspardéfaut
C’estvide
réécrirelesfichiersducœur!
lesthèmes
lesextensions
Thème=coloriage
Plugin=fonctionnalité
Thème=apparence
Plugin=fonctionnalité
1.Commentfonctionneunplugin
2.Déclarerunnouveauplugin
3.Quelquesbonnespratiques
4.PubliersonpluginsurleRepo
Comment
secharge
WordPress?https://www.rarst.net/wordpress/wordpress-core-load/
Leshooks
actionsetfiltres
Exempledehookd’action
Exempledehookdefiltre:
AutreExempledehookdefiltre:
Lescommentaires
conditionnelsis_page(),is_home(),is_front_page(),is_admin(),is_sticky(),is_page_template()
is_post(),is_singular(),in_the_loop(),in_category(),has_term(),is_tax(),taxonomy_exists()
is_author(),is_date(),is_search(),is_404(),post_type_exists(),is_new_day(),has_excerpt()
is_main_site(),email_exists(),is_plugin_active(),username_exists(),is_child_theme()
is_customize_preview(),is_archive(),is_user_logged_in(),has_post_thumbnail(),is_search(),…1
1
La liste complète : https://codex.wordpress.org/Conditional_Tags
Hookdefiltreaveccommentaire
conditionnel:
Hookdefiltreavecplusieurscommentaires
conditionnels:
Hookd’actionaveccondition:
Déclarerduplugin=
Unrépertoiredans/wp-content/plugins/
+
Unfichierphpdumêmenomdedans
Danslefichierprincipal(éponyme)duplugin,
Inséreruneentête2
2
https://developer.wordpress.org/plugins/the-basics/header-requirements/
Avantsejeterdanslecode:
Quelquesbonnespratiques
1.WP_DEBUGàtrue
2.plugins«DebugBar»
3.Pensezàlasécurité
4.LisezlesWPCodingStandards
5.Ouvrezvotrecodegrâceauxhooks
6.Testezavecd’autresplugins!…
7.Lisezlescodessources3
3
Voir la conférence : https://wabeo.fr/lire-code-wordpress/
QuelquesfonctionsàDÉCOUVRIR:
antispambot(),wp_mail(),wpautop(),the_editor(),the_permalink(),get_adjacent_post(),
get_post_types(),get_the_post_thumbnail(),get_post(),get_post_field(),
get_post_ancestors(),get_post_mime_type(),wp_update_user(),wp_remote_retrieve_body(),
get_post_status(),get_post_format(),set_post_format(),
get_edit_post_link(),get_delete_post_link(),get_previous_post(),get_previous_posts_link(),previous_posts_link(),
get_posts(),get_category_by_slug(),get_the_category_by_ID(),get_the_category_list(),get_category_link(),
get_category_parents(),get_the_category(),single_cat_title(),in_category(),is_category(),
is_tag(),the_tags(),single_tag_title(),tag_description(),wp_generate_tag_cloud(),
wp_tag_cloud(),post_type_supports(),set_post_type(),post_type_exists(),get_post_type(),
get_post_types(),get_post_type_archive_link(),get_post_type_object(),wp_get_object_terms(),
wp_remove_object_terms(),wp_set_object_terms(),wp_insert_term(),wp_update_term(),wp_delete_term(),wp_terms_checklist(),
wp_link_pages(),wp_list_pages(),wp_page_menu(),wp_dropdown_pages(),get_page_link(),get_page_by_path(),
get_page_by_title(),get_page_children(),wp_get_attachment_image(),wp_get_attachment_link(),
wp_get_attachment_image_src(),wp_get_attachment_metadata(),
wp_get_attachment_thumb_file(),wp_get_attachment_thumb_url(),wp_get_attachment_url()
wp_check_for_changed_slugs(),wp_count_posts(),wp_get_mime_types(),wp_mime_type_icon(),wp_generate_attachment_metadata(),
wp_prepare_attachment_for_js(),add_meta_box(),remove_meta_box(),get_the_ID(),
the_ID(),get_the_author(),the_author(),get_the_author_posts(),get_the_content(),the_content(),
get_the_title(),the_title(),the_title_attribute(),wp_trim_excerpt(),
wp_get_post_revision(),wp_get_post_revisions(),wp_is_post_revision(),
paginate_links(),wp_authenticate(),username_exists(),
validate_username(),wp_dropdown_users(),wp_get_current_user(),wp_set_current_user(),
wp_set_password(),get_author_posts_url(),get_the_modified_author(),is_multi_author(),wp_delete_user(),wp_insert_user(),
Mettreenligneson
extension
1.Écrireunfichier
readme.txt4
4
Écrire le readme : https://developer.wordpress.org/plugins/wordpress-
org/how-your-readme-txt-works/
2.Soumettre
sonplugin
àlarelecture5
5
Connectez-vous à wp.org puis aller sur https://fr.wordpress.org/plugins/
developers/add/
3.Attendre…
4.Attendre…
78.Recevoirles
accèsaudépôtSVN
79.EssayerdecomprendrecommentmarcheSVN6
6
Un peu de doc est la bienvenue : https://developer.wordpress.org/
plugins/wordpress-org/how-to-use-subversion/
Expérimentez!
Détaildesatelierspratiques:
L’idéeestdes’appuyersurlecodefourni7
pourréécrirelesextensions
Shortcodedeconversiondedevise
Sommaired’article
CarteGéographique
EspaceMembre
Importdetweets
7
Voir le dépot et le site des démos

Contenu connexe

Tendances

Mpdf 6
Mpdf 6Mpdf 6
Mpdf 6
Moez Moezm
 
Symfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulairesSymfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulaires
Abdelkader Rhouati
 
Bâtir son site a l'aide de wordpress
Bâtir son site a l'aide de wordpressBâtir son site a l'aide de wordpress
Bâtir son site a l'aide de wordpress
Frédéric Caron
 
php
phpphp
Outils front-end
Outils front-endOutils front-end
Outils front-end
Thomas Bodin
 
Creation de-themes-wp
Creation de-themes-wpCreation de-themes-wp
Creation de-themes-wp
Chi Nacim
 
Mpdf 13
Mpdf 13Mpdf 13
Mpdf 13
Moez Moezm
 
Mpdf 9
Mpdf 9Mpdf 9
Mpdf 9
Moez Moezm
 
Comment se charge WordPress ? Le loading du core.
Comment se charge WordPress ? Le loading du core.Comment se charge WordPress ? Le loading du core.
Comment se charge WordPress ? Le loading du core.
Boiteaweb
 
Mpdf 3
Mpdf 3Mpdf 3
Mpdf 3
Moez Moezm
 

Tendances (10)

Mpdf 6
Mpdf 6Mpdf 6
Mpdf 6
 
Symfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulairesSymfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulaires
 
Bâtir son site a l'aide de wordpress
Bâtir son site a l'aide de wordpressBâtir son site a l'aide de wordpress
Bâtir son site a l'aide de wordpress
 
php
phpphp
php
 
Outils front-end
Outils front-endOutils front-end
Outils front-end
 
Creation de-themes-wp
Creation de-themes-wpCreation de-themes-wp
Creation de-themes-wp
 
Mpdf 13
Mpdf 13Mpdf 13
Mpdf 13
 
Mpdf 9
Mpdf 9Mpdf 9
Mpdf 9
 
Comment se charge WordPress ? Le loading du core.
Comment se charge WordPress ? Le loading du core.Comment se charge WordPress ? Le loading du core.
Comment se charge WordPress ? Le loading du core.
 
Mpdf 3
Mpdf 3Mpdf 3
Mpdf 3
 

Similaire à Atelier création de plugin WordPress

Wordcamp Paris 2013
Wordcamp Paris 2013Wordcamp Paris 2013
Wordcamp Paris 2013
corsonr
 
Optimiser son référencement WordPress - QueDuWeb 2016
Optimiser son référencement WordPress - QueDuWeb 2016Optimiser son référencement WordPress - QueDuWeb 2016
Optimiser son référencement WordPress - QueDuWeb 2016
Daniel Roch - SeoMix
 
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
imath
 
Simple présentation de Wordpress
Simple présentation de WordpressSimple présentation de Wordpress
Simple présentation de Wordpress
Olympe Tchibozo
 
ZendFramework2 - Présentation
ZendFramework2 - PrésentationZendFramework2 - Présentation
ZendFramework2 - Présentation
julien pauli
 
Atelier pratique : CR CMS - Webassoc 14 avril 2015
Atelier pratique : CR CMS - Webassoc 14 avril 2015Atelier pratique : CR CMS - Webassoc 14 avril 2015
Atelier pratique : CR CMS - Webassoc 14 avril 2015
webassoc .fr
 
Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
wplyon
 
L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...
L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...
L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...
Olivier Nourry
 
DrupalCamp2013 - "libérez drupal"
DrupalCamp2013 - "libérez drupal"DrupalCamp2013 - "libérez drupal"
DrupalCamp2013 - "libérez drupal"
Laurent Chardin
 
WordPress
WordPressWordPress
WordPress
Thomas Bodin
 
Audit de site WordPress
Audit de site WordPressAudit de site WordPress
Audit de site WordPress
Daniel Roch - SeoMix
 
Bien débuter dans la conception d'un thème WordPress
Bien débuter dans la conception d'un thème WordPressBien débuter dans la conception d'un thème WordPress
Bien débuter dans la conception d'un thème WordPress
Aurélien Denis
 
Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4
🏁 Pierre-Henry Soria 💡
 
présentation Faille include
présentation Faille include présentation Faille include
présentation Faille include
sahar dridi
 
Découverte d'aeSecure, sécurisation et optimisation sites Apache
Découverte d'aeSecure, sécurisation et optimisation sites ApacheDécouverte d'aeSecure, sécurisation et optimisation sites Apache
Découverte d'aeSecure, sécurisation et optimisation sites Apache
Christophe Avonture
 
[Atelier] Comment traduire un thème (ou une extension) WordPress
[Atelier] Comment traduire un thème (ou une extension) WordPress[Atelier] Comment traduire un thème (ou une extension) WordPress
[Atelier] Comment traduire un thème (ou une extension) WordPress
Yoav Farhi
 
WP CLI : le couteau suisse du développeur
WP CLI : le couteau suisse du développeurWP CLI : le couteau suisse du développeur
WP CLI : le couteau suisse du développeur
benjamingossetpro
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
Christophe Villeneuve
 
Jasmine : tests unitaires en JavaScript - Human Talks Grenoble 14.05.2013
Jasmine : tests unitaires en JavaScript - Human Talks Grenoble 14.05.2013Jasmine : tests unitaires en JavaScript - Human Talks Grenoble 14.05.2013
Jasmine : tests unitaires en JavaScript - Human Talks Grenoble 14.05.2013
Xavier NOPRE
 

Similaire à Atelier création de plugin WordPress (20)

Wordcamp Paris 2013
Wordcamp Paris 2013Wordcamp Paris 2013
Wordcamp Paris 2013
 
Optimiser son référencement WordPress - QueDuWeb 2016
Optimiser son référencement WordPress - QueDuWeb 2016Optimiser son référencement WordPress - QueDuWeb 2016
Optimiser son référencement WordPress - QueDuWeb 2016
 
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
 
Tp1 wp etud
Tp1 wp etudTp1 wp etud
Tp1 wp etud
 
Simple présentation de Wordpress
Simple présentation de WordpressSimple présentation de Wordpress
Simple présentation de Wordpress
 
ZendFramework2 - Présentation
ZendFramework2 - PrésentationZendFramework2 - Présentation
ZendFramework2 - Présentation
 
Atelier pratique : CR CMS - Webassoc 14 avril 2015
Atelier pratique : CR CMS - Webassoc 14 avril 2015Atelier pratique : CR CMS - Webassoc 14 avril 2015
Atelier pratique : CR CMS - Webassoc 14 avril 2015
 
Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
 
L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...
L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...
L'accessibilité à grande échelle - Comment WordPress intègre l’accessibilité ...
 
DrupalCamp2013 - "libérez drupal"
DrupalCamp2013 - "libérez drupal"DrupalCamp2013 - "libérez drupal"
DrupalCamp2013 - "libérez drupal"
 
WordPress
WordPressWordPress
WordPress
 
Audit de site WordPress
Audit de site WordPressAudit de site WordPress
Audit de site WordPress
 
Bien débuter dans la conception d'un thème WordPress
Bien débuter dans la conception d'un thème WordPressBien débuter dans la conception d'un thème WordPress
Bien débuter dans la conception d'un thème WordPress
 
Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4
 
présentation Faille include
présentation Faille include présentation Faille include
présentation Faille include
 
Découverte d'aeSecure, sécurisation et optimisation sites Apache
Découverte d'aeSecure, sécurisation et optimisation sites ApacheDécouverte d'aeSecure, sécurisation et optimisation sites Apache
Découverte d'aeSecure, sécurisation et optimisation sites Apache
 
[Atelier] Comment traduire un thème (ou une extension) WordPress
[Atelier] Comment traduire un thème (ou une extension) WordPress[Atelier] Comment traduire un thème (ou une extension) WordPress
[Atelier] Comment traduire un thème (ou une extension) WordPress
 
WP CLI : le couteau suisse du développeur
WP CLI : le couteau suisse du développeurWP CLI : le couteau suisse du développeur
WP CLI : le couteau suisse du développeur
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
Jasmine : tests unitaires en JavaScript - Human Talks Grenoble 14.05.2013
Jasmine : tests unitaires en JavaScript - Human Talks Grenoble 14.05.2013Jasmine : tests unitaires en JavaScript - Human Talks Grenoble 14.05.2013
Jasmine : tests unitaires en JavaScript - Human Talks Grenoble 14.05.2013
 

Dernier

Riding motorbikes in country side 15
Riding motorbikes in country side 15Riding motorbikes in country side 15
Riding motorbikes in country side 15
RDM-ROW history
 
Conseils pour mieux Sécuriser votre système Linux
Conseils pour mieux Sécuriser votre système LinuxConseils pour mieux Sécuriser votre système Linux
Conseils pour mieux Sécuriser votre système Linux
Asher256
 
Stratégies pour accroître la visibilité et l'engagement de votre blog
Stratégies pour accroître la visibilité et l'engagement de votre blogStratégies pour accroître la visibilité et l'engagement de votre blog
Stratégies pour accroître la visibilité et l'engagement de votre blog
Asher256
 
Riding motorbikes in country side 20
Riding motorbikes in country side 20Riding motorbikes in country side 20
Riding motorbikes in country side 20
RDM-ROW history
 
Netflix, OCS et Disney avec ou sans engagement
Netflix, OCS et Disney avec ou sans engagementNetflix, OCS et Disney avec ou sans engagement
Netflix, OCS et Disney avec ou sans engagement
ABO IPTV PREMIUM
 
Les logiciels libres : une opportunite pour votre entreprise?
Les logiciels libres : une opportunite pour votre entreprise?Les logiciels libres : une opportunite pour votre entreprise?
Les logiciels libres : une opportunite pour votre entreprise?
Asher256
 

Dernier (6)

Riding motorbikes in country side 15
Riding motorbikes in country side 15Riding motorbikes in country side 15
Riding motorbikes in country side 15
 
Conseils pour mieux Sécuriser votre système Linux
Conseils pour mieux Sécuriser votre système LinuxConseils pour mieux Sécuriser votre système Linux
Conseils pour mieux Sécuriser votre système Linux
 
Stratégies pour accroître la visibilité et l'engagement de votre blog
Stratégies pour accroître la visibilité et l'engagement de votre blogStratégies pour accroître la visibilité et l'engagement de votre blog
Stratégies pour accroître la visibilité et l'engagement de votre blog
 
Riding motorbikes in country side 20
Riding motorbikes in country side 20Riding motorbikes in country side 20
Riding motorbikes in country side 20
 
Netflix, OCS et Disney avec ou sans engagement
Netflix, OCS et Disney avec ou sans engagementNetflix, OCS et Disney avec ou sans engagement
Netflix, OCS et Disney avec ou sans engagement
 
Les logiciels libres : une opportunite pour votre entreprise?
Les logiciels libres : une opportunite pour votre entreprise?Les logiciels libres : une opportunite pour votre entreprise?
Les logiciels libres : une opportunite pour votre entreprise?
 

Atelier création de plugin WordPress