Les bonnes pratiques de développement d'un plugin
1. contributors.txt
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2020788/Capture_d__cran_2015-12-02___11.47.22.png)
2. Commenter son code
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027453/3170366.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2026007/Capture_d_e_cran_2015-12-03_a__10.02.59.png)
On fait quoi avec ça ?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027803/vSk2rF1.gif)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2026025/Capture_d_e_cran_2015-12-03_a__10.10.03.png)
Voilà qui est mieux !
3. Définir une architecture
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027503/65047480.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2026029/Capture_d_e_cran_2015-12-03_a__10.12.37.png)
Monsieur Revolution Slider, je cherche le fichier où le HTML des sliders est généré, tu peux m'aider à trouver ?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027487/PDIOZkC.gif)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2026034/Capture_d_e_cran_2015-12-03_a__10.14.36.png)
- assets : fichiers CSS, JS et images
- inc : fichiers PHP
- 3rd-party : hooks pour compatibilité avec autres plugins / themes
- admin : hooks déclenchés dans l'admin
- api : fichiers des APIs externes
- classes : fichiers de classes
- common : les hooks déclenchés sur le front et l'admin
- front : hooks déclenchés dans le front
- functions : déclarations des fonctions
- languages : fichiers de traductions
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2034021/Capture_d_e_cran_2015-12-05_a__12.22.03.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2034022/Capture_d_e_cran_2015-12-05_a__12.22.16.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2034024/Capture_d_e_cran_2015-12-05_a__12.22.26.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2034026/Capture_d_e_cran_2015-12-05_a__12.25.02.png)
4. Préfixer les fonctions
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2028034/but-why-meme-generator-but-why-84103d.jpg)
4.1 Fonctions du plugin
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027828/Capture_d_e_cran_2015-12-03_a__17.22.01.png)
4.2 Fonctions dites Private Scope
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027837/Capture_d_e_cran_2015-12-03_a__17.23.36.png)
4.3 Librairies externes
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027841/Capture_d_e_cran_2015-11-24_a__19.16.16.png)
Ce n'est pas suffisant !
5. Définir une constante de version
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027518/60248244.jpg)
On a dit une constante, pas une variable globale !
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2026973/Capture_d_e_cran_2015-12-03_a__10.52.19.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2026975/Capture_d_e_cran_2015-12-03_a__10.52.35.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2026982/Capture_d_e_cran_2015-12-03_a__14.45.38.png)
Une constante + la valeur en option
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027013/Capture_d_e_cran_2015-12-03_a__10.42.22.png)
5.1 Une gestion plus simple de la 1ère installation et des prochaines M.A.J
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027059/Capture_d_e_cran_2015-12-03_a__15.03.11.png)
5.2 Actions lors de la 1ère installation
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027180/Capture_d_e_cran_2015-12-03_a__10.43.03.png)
5.3 Actions lors d'une mise à jour
5.4 Faciliter la détection du plugin
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027281/Capture_d_e_cran_2015-12-03_a__15.46.33.png)
6. Gérer les états du plugin
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027917/SvaAv.gif)
6.1 Activation
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027865/Capture_d_e_cran_2015-12-03_a__17.28.05.png)
Paramètres
$file : chemin vers le fichier principal du plugin
$function : la fonction qui sera déclenchée lors de l'activation du plugin
6.2 Désactivation
Paramètres
$file : chemin vers le fichier principal du plugin
$function : la fonction qui sera déclenchée lors de la désactivation du plugin
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027902/Capture_d_e_cran_2015-12-03_a__17.34.51.png)
6.3 Suppression
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027921/Capture_d_e_cran_2015-12-03_a__17.38.27.png)
uninstall.php
Ce fichier doit être placé à la racine du plugin
7. Ajouter des Hooks
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2020917/3145119.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027959/Capture_d_e_cran_2015-12-03_a__17.44.18.png)
7.1 Se rendre service soit-même
7.1 Se rendre service soit-même
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027978/Capture_d_e_cran_2015-12-03_a__17.47.38.png)
7.2 Rendre son plugin accessible
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2034030/Capture_d_e_cran_2015-12-05_a__12.27.26.png)
7.2 Rendre son plugin accessible
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2034031/Capture_d_e_cran_2015-12-05_a__12.28.52.png)
7.3 Se greffer à d'autres plugins
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2028029/Capture_d_e_cran_2015-12-03_a__17.59.09.png)
8. Versionner son code + Code Review
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2028049/MxFZvNI.gif)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027989/git-model_2x.png)
Github Flow
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027325/Capture_d_e_cran_2015-11-24_a__23.35.18.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027995/Capture_d_e_cran_2015-12-03_a__17.53.07.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/2027999/trollface1.jpg)
Jonathan Buttigieg
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/1867981/logo-wpmedia.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/jonathanbuttigieg/images/998575/WP-rocket-logo-white-transparent.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/169026/images/1867949/Mobile___Dark_Background_Logo_2x.png)
@geekpressfr
On recherche un astronaute !
https://wp-media.workable.com/j/73F88E0257
Les bonnes pratiques de développement d'un plugin WordPress
By Jonathan Buttigieg
Les bonnes pratiques de développement d'un plugin WordPress
- 8,281