comment se charge wordpress ? le loading du core

37
Comment se charge WordPress ? Le loading du core Julio Potier boiteaweb.fr @boiteaweb WPTech Nantes 2014

Upload: boiteaweb

Post on 07-Jul-2015

3.441 views

Category:

Internet


0 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: Comment se charge WordPress ? Le loading du core

Comment se charge WordPress ?

Le loading du core

Julio Potierboiteaweb.fr@boiteaweb

WPTech Nantes 2014

Page 2: Comment se charge WordPress ? Le loading du core

Bootstraps

Page 3: Comment se charge WordPress ? Le loading du core

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

Page 4: Comment se charge WordPress ? Le loading du core

Bootstraps

wp-config.php

● Déprécié, ne le faites plus.

Page 5: Comment se charge WordPress ? Le loading du core

Bootstraps

index.php

● Pour le front-end.

● Le plus utilisé.

● Rien à faire niveau code.

● Destiné à ceux qui ont besoin d’un

WordPress complet.

Page 6: Comment se charge WordPress ? Le loading du core

Bootstraps

xmlrpc.php

● Protocole XML-RPC

● Permet de contrôler WP.

● Utilisé par exemple pour les pings.

● Sera remplacé par JSON REST API.

Page 7: Comment se charge WordPress ? Le loading du core

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.

Page 8: Comment se charge WordPress ? Le loading du core

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

Page 9: Comment se charge WordPress ? Le loading du core

Bootstraps

wp-admin/index.php

● Pour le back-end.

● Utilisé par WordPress.

● Rien à faire niveau code.

Page 10: Comment se charge WordPress ? Le loading du core

Bootstraps

admin-post.php

● Utilisé par WordPress.

● À utiliser pour lancer des requêtes non

AJAX.

● Ne faites pas votre propre bootstrap !

#hooks

Page 11: Comment se charge WordPress ? Le loading du core

Bootstraps

admin-ajax.php

● Utilisé par WordPress.

● À utiliser pour lancer des requêtes

AJAX.

● Ne faites pas votre propre bootstrap !

#hooks

Page 12: Comment se charge WordPress ? Le loading du core

Bootstraps

Page 13: Comment se charge WordPress ? Le loading du core

Comment bootstrapper ?

Page 14: Comment se charge WordPress ? Le loading du core

Comment bootstrapper ?

Pour créer une application ou utiliser

WordPress en tant que framework seul :

Dans un fichier à la racine de l'installation.

Page 15: Comment se charge WordPress ? Le loading du core

Comment bootstrapper ?

Besoin du core depuis un thème ou un

plugin perso :

>_<' Attention aux chemins modifiés via

la constante "WP_PLUGIN_DIR" !

Page 16: Comment se charge WordPress ? Le loading du core

Comment bootstrapper ?

Besoin du core depuis un thème ou un

plugin perso :

Page 17: Comment se charge WordPress ? Le loading du core

Le chargement

Page 18: Comment se charge WordPress ? Le loading du core

Le chargement

Qu'est-ce qui est chargé ?

Des fichiers

Des hooks

Page 19: Comment se charge WordPress ? Le loading du core

Le chargement

http://www.rarst.net/images/wordpress_core_load.png

Page 20: Comment se charge WordPress ? Le loading du core

http://www.rarst.net/images/wordpress_core_load.png

Page 21: Comment se charge WordPress ? Le loading du core

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.

Page 22: Comment se charge WordPress ? Le loading du core

Le chargement

muplugins

/wp-content/mu-plugins/

Toujours chargés dans l'ordre alphabétique !

Page 23: Comment se charge WordPress ? Le loading du core

Le chargement

pluggable.php

Possibilité de créer conditionnellement

certaines fonctions avant que le core de

WordPress ne s'en occupe.

Page 24: Comment se charge WordPress ? Le loading du core

Le chargement

functions.php

Thème enfant

Thème parent

Attention aux fonctions déjà déclarées !

Page 25: Comment se charge WordPress ? Le loading du core

Le chargement

$current_user

Page 26: Comment se charge WordPress ? Le loading du core

Le chargement

template_redirect

Page 27: Comment se charge WordPress ? Le loading du core

Le chargement admin-ajax.php

Page 28: Comment se charge WordPress ? Le loading du core

Le chargement admin-post.php

Page 29: Comment se charge WordPress ? Le loading du core

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.

Page 30: Comment se charge WordPress ? Le loading du core

Démos

Page 31: Comment se charge WordPress ? Le loading du core

Démos

Page 32: Comment se charge WordPress ? Le loading du core

Démos

Ce code est impossible !

Attention à l'ordre de déclenchement des

hooks, actions ou filtres !

Page 33: Comment se charge WordPress ? Le loading du core

http://www.rarst.net/images/wordpress_core_load.png

1

2

Page 34: Comment se charge WordPress ? Le loading du core

Démos

Ce code est impossible !Tout doit être hooké !

Exception pour les defines et globales.

Page 35: Comment se charge WordPress ? Le loading du core

Où trouver ?

Page 36: Comment se charge WordPress ? Le loading du core

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

Page 37: Comment se charge WordPress ? Le loading du core

Merci !Julio Potier

wp-rocket.me@wp_rocket

WPTech Nantes 2014