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.
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. Bootstraps
xmlrpc.php
● Protocole XML-RPC
● Permet de contrôler WP.
● Utilisé par exemple pour les pings.
● Sera remplacé par JSON REST API.
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. 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
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. Comment bootstrapper ?
Besoin du core depuis un thème ou un
plugin perso :
>_<' Attention aux chemins modifiés via
la constante "WP_PLUGIN_DIR" !
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.
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. Merci !
Julio Potier
wp-rocket.me
@wp_rocket
WPTech Nantes 2014