Comment se charge 
WordPress ? 
Le loading du core 
Julio Potier 
boiteaweb.fr 
@boiteaweb 
WPTech Nantes 2014
Bootstraps
Bootstraps 
wp-config.php 
index.php 
xmlrpc.php 
wp-blog-header.php 
wp-load.php 
wp-admin/index.php 
wp-admin/admin-post...
Bootstraps 
wp-config.php 
● Déprécié, ne le faites plus.
Bootstraps 
index.php 
● Pour le front-end. 
● Le plus utilisé. 
● Rien à faire niveau code. 
● Destiné à ceux qui ont bes...
Bootstraps 
xmlrpc.php 
● Protocole XML-RPC 
● Permet de contrôler WP. 
● Utilisé par exemple pour les pings. 
● Sera remp...
Bootstraps 
wp-blog-header.php 
● Pas de template chargé. 
● Constante "WP_USE_THEMES" non 
définie. 
● Vous chargez les p...
Bootstraps 
wp-load.php 
● Chargez toutes les APIs et les plugins. 
● Pas de thèmes, pas de main query. 
● Constante "SHOR...
Bootstraps 
wp-admin/index.php 
● Pour le back-end. 
● Utilisé par WordPress. 
● Rien à faire niveau code.
Bootstraps 
admin-post.php 
● Utilisé par WordPress. 
● À utiliser pour lancer des requêtes non 
AJAX. 
● Ne faites pas vo...
Bootstraps 
admin-ajax.php 
● Utilisé par WordPress. 
● À utiliser pour lancer des requêtes 
AJAX. 
● Ne faites pas votre ...
Bootstraps
Comment 
bootstrapper ?
Comment bootstrapper ? 
Pour créer une application ou utiliser 
WordPress en tant que framework seul : 
Dans un fichier à ...
Comment bootstrapper ? 
Besoin du core depuis un thème ou un 
plugin perso : 
>_<' Attention aux chemins modifiés via 
la ...
Comment bootstrapper ? 
Besoin du core depuis un thème ou un 
plugin perso :
Le chargement
Le chargement 
Qu'est-ce qui est chargé ? 
Des fichiers 
Des hooks
Le chargement 
http://www.rarst.net/images/wordpress_core_load.png
http://www.rarst.net/images/wordpress_core_load.png
Le chargement 
wp-load.php 
Se charge d'inclure wp-config.php 
et wp-includes/load.php 
qui lui-même s'occupe de charger 
...
Le chargement 
muplugins 
/wp-content/mu-plugins/ 
Toujours chargés dans l'ordre alphabétique !
Le chargement 
pluggable.php 
Possibilité de créer conditionnellement 
certaines fonctions avant que le core de 
WordPress...
Le chargement 
functions.php 
Thème enfant 
Thème parent 
Attention aux fonctions déjà déclarées !
Le chargement 
$current_user
Le chargement 
template_redirect
Le chargement 
admin-ajax.php
Le chargement 
admin-post.php
Le chargement 
Des hooks 
● muplugins_loaded : 1er hook possible. 
● { vos plugins } : Ceux de leur auteur. 
● plugins_loa...
Démos
Démos
Démos 
Ce code est impossible ! 
Attention à l'ordre de déclenchement des 
hooks, actions ou filtres !
http://www.rarst.net/images/wordpress_core_load.png 
2 
1
Démos 
Ce code est impossible ! 
Tout doit être hooké ! 
Exception pour les defines et globales.
Où trouver ?
Où trouver ? 
Dans le core ! Encore et encore ! 
... et un peu le codex aussi ... 
http://codex.wordpress.org/Plugin_API/A...
Merci ! 
Julio Potier 
wp-rocket.me 
@wp_rocket 
WPTech Nantes 2014
Prochain SlideShare
Chargement dans…5
×

Comment se charge WordPress ? Le loading du core.

5 097 vues

Publié le

Présentation WordPress donnée au WPTech 2014.

Le chargement de WordPress reste un mystère pour beaucoup d’entre nous.

Entrons dans les entrailles du démarrage de WordPress, trouvons ce qui se passe, quels hooks sont lancés et comprenez alors pourquoi certaines actions nécessites d’être hookées, comprenez l’intérêt des priorités, comprenez pourquoi nous lançons certaines actions trop tard.

Publié dans : Internet
0 commentaire
5 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
5 097
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3 315
Actions
Partages
0
Téléchargements
39
Commentaires
0
J’aime
5
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Comment se charge WordPress ? Le loading du core.

  1. 1. Comment se charge WordPress ? Le loading du core Julio Potier boiteaweb.fr @boiteaweb WPTech Nantes 2014
  2. 2. Bootstraps
  3. 3. Bootstraps wp-config.php index.php xmlrpc.php wp-blog-header.php wp-load.php wp-admin/index.php wp-admin/admin-post.php wp-admin/admin-ajax.php
  4. 4. Bootstraps wp-config.php ● Déprécié, ne le faites plus.
  5. 5. Bootstraps index.php ● Pour le front-end. ● Le plus utilisé. ● Rien à faire niveau code. ● Destiné à ceux qui ont besoin d’un WordPress complet.
  6. 6. Bootstraps xmlrpc.php ● Protocole XML-RPC ● Permet de contrôler WP. ● Utilisé par exemple pour les pings. ● Sera remplacé par JSON REST API.
  7. 7. Bootstraps wp-blog-header.php ● Pas de template chargé. ● Constante "WP_USE_THEMES" non définie. ● Vous chargez les plugins, la main query et toutes les APIs.
  8. 8. Bootstraps wp-load.php ● Chargez toutes les APIs et les plugins. ● Pas de thèmes, pas de main query. ● Constante "SHORTINIT" possible : Pas toutes les APIs, pas de plugins, pas de traductions, pas de users, pas de front, etc
  9. 9. Bootstraps wp-admin/index.php ● Pour le back-end. ● Utilisé par WordPress. ● Rien à faire niveau code.
  10. 10. Bootstraps admin-post.php ● Utilisé par WordPress. ● À utiliser pour lancer des requêtes non AJAX. ● Ne faites pas votre propre bootstrap ! #hooks
  11. 11. Bootstraps admin-ajax.php ● Utilisé par WordPress. ● À utiliser pour lancer des requêtes AJAX. ● Ne faites pas votre propre bootstrap ! #hooks
  12. 12. Bootstraps
  13. 13. Comment bootstrapper ?
  14. 14. Comment bootstrapper ? Pour créer une application ou utiliser WordPress en tant que framework seul : Dans un fichier à la racine de l'installation.
  15. 15. Comment bootstrapper ? Besoin du core depuis un thème ou un plugin perso : >_<' Attention aux chemins modifiés via la constante "WP_PLUGIN_DIR" !
  16. 16. Comment bootstrapper ? Besoin du core depuis un thème ou un plugin perso :
  17. 17. Le chargement
  18. 18. Le chargement Qu'est-ce qui est chargé ? Des fichiers Des hooks
  19. 19. Le chargement http://www.rarst.net/images/wordpress_core_load.png
  20. 20. http://www.rarst.net/images/wordpress_core_load.png
  21. 21. Le chargement wp-load.php Se charge d'inclure wp-config.php et wp-includes/load.php qui lui-même s'occupe de charger les options de votre site.
  22. 22. Le chargement muplugins /wp-content/mu-plugins/ Toujours chargés dans l'ordre alphabétique !
  23. 23. Le chargement pluggable.php Possibilité de créer conditionnellement certaines fonctions avant que le core de WordPress ne s'en occupe.
  24. 24. Le chargement functions.php Thème enfant Thème parent Attention aux fonctions déjà déclarées !
  25. 25. Le chargement $current_user
  26. 26. Le chargement template_redirect
  27. 27. Le chargement admin-ajax.php
  28. 28. Le chargement admin-post.php
  29. 29. Le chargement Des hooks ● muplugins_loaded : 1er hook possible. ● { vos plugins } : Ceux de leur auteur. ● plugins_loaded : Vos plugins sont chargés. ● after_setup_theme : Votre thème l'est aussi. ● init : WordPress est initialisé. ● admin_init : Le back-end l'est. ● pre_get_posts : Possibilité de hacker les requêtes. ● template_redirect : Dernier hook pour rediriger. ● { votre thème } : Certains hooks restent obligatoires. ● shutdown : Dernier hook, géré via PHP.
  30. 30. Démos
  31. 31. Démos
  32. 32. Démos Ce code est impossible ! Attention à l'ordre de déclenchement des hooks, actions ou filtres !
  33. 33. http://www.rarst.net/images/wordpress_core_load.png 2 1
  34. 34. Démos Ce code est impossible ! Tout doit être hooké ! Exception pour les defines et globales.
  35. 35. Où trouver ?
  36. 36. Où trouver ? Dans le core ! Encore et encore ! ... et un peu le codex aussi ... http://codex.wordpress.org/Plugin_API/Action_Reference http://codex.wordpress.org/Plugin_API/Filter_Reference http://www.rarst.net/images/wordpress_core_load.png
  37. 37. Merci ! Julio Potier wp-rocket.me @wp_rocket WPTech Nantes 2014

×