comment se charge wordpress ? le loading du core
Post on 07-Jul-2015
3.442 Views
Preview:
DESCRIPTION
TRANSCRIPT
Comment se charge WordPress ?
Le loading du core
Julio Potierboiteaweb.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.php
wp-admin/admin-ajax.php
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 besoin d’un
WordPress complet.
Bootstraps
xmlrpc.php
● Protocole XML-RPC
● Permet de contrôler WP.
● Utilisé par exemple pour les pings.
● Sera remplacé par JSON REST API.
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.
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
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 votre propre bootstrap !
#hooks
Bootstraps
admin-ajax.php
● Utilisé par WordPress.
● À utiliser pour lancer des requêtes
AJAX.
● Ne faites pas votre propre bootstrap !
#hooks
Bootstraps
Comment bootstrapper ?
Comment bootstrapper ?
Pour créer une application ou utiliser
WordPress en tant que framework seul :
Dans un fichier à la racine de l'installation.
Comment bootstrapper ?
Besoin du core depuis un thème ou un
plugin perso :
>_<' Attention aux chemins modifiés via
la constante "WP_PLUGIN_DIR" !
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
les options de votre site.
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 ne s'en occupe.
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_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.
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
1
2
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/Action_Reference
http://codex.wordpress.org/Plugin_API/Filter_Reference
http://www.rarst.net/images/wordpress_core_load.png
Merci !Julio Potier
wp-rocket.me@wp_rocket
WPTech Nantes 2014
top related