SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
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.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 
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/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

Más contenido relacionado

La actualidad más candente

Création de themes WordPress
Création de themes WordPressCréation de themes WordPress
Création de themes WordPressChi Nacim
 
Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013Ghilas BELHADJ
 
Wordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsWordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsBoiteaweb
 
Wordpress : Attaque, Audit et Protection | Hackfest 2015
Wordpress : Attaque, Audit et Protection | Hackfest 2015Wordpress : Attaque, Audit et Protection | Hackfest 2015
Wordpress : Attaque, Audit et Protection | Hackfest 2015Harvey Francois
 
Les données transitoires (transients) vous veulent du bien
Les données transitoires (transients) vous veulent du bienLes données transitoires (transients) vous veulent du bien
Les données transitoires (transients) vous veulent du bienBoiteaweb
 
Conversion de template HTML en thème WordPress
Conversion de template HTML en thème WordPressConversion de template HTML en thème WordPress
Conversion de template HTML en thème WordPressChi Nacim
 
WordPress en tant que CMS
WordPress en tant que CMSWordPress en tant que CMS
WordPress en tant que CMSAurélien Denis
 
Les 10 Erreurs des Debutants avec WordPress
Les 10 Erreurs des Debutants avec WordPressLes 10 Erreurs des Debutants avec WordPress
Les 10 Erreurs des Debutants avec WordPressNicolas Richer
 
Migration de données… Destination WordPress !
Migration de données… Destination WordPress !Migration de données… Destination WordPress !
Migration de données… Destination WordPress !Willy Bahuaud
 
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech NantesOuvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech Nantescorsonr
 
Sécuriser un site Wordpress
Sécuriser un site WordpressSécuriser un site Wordpress
Sécuriser un site Wordpressbestyuna
 
Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPressChi Nacim
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapBassem ABCHA
 
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirYves Van Goethem
 
WordPress + ACF – Vers l’infini et au-delà…
WordPress + ACF – Vers l’infini et au-delà…WordPress + ACF – Vers l’infini et au-delà…
WordPress + ACF – Vers l’infini et au-delà…Brice Capobianco
 
Vue, j’avais pas vu !
Vue, j’avais pas vu !Vue, j’avais pas vu !
Vue, j’avais pas vu !Bruno Bonnin
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partiekadzaki
 
Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !Bruno Bonnin
 
Sécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webSécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webIZZA Samir
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPkemenaran
 

La actualidad más candente (20)

Création de themes WordPress
Création de themes WordPressCréation de themes WordPress
Création de themes WordPress
 
Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
 
Wordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsWordpress et la sécurité des plugins
Wordpress et la sécurité des plugins
 
Wordpress : Attaque, Audit et Protection | Hackfest 2015
Wordpress : Attaque, Audit et Protection | Hackfest 2015Wordpress : Attaque, Audit et Protection | Hackfest 2015
Wordpress : Attaque, Audit et Protection | Hackfest 2015
 
Les données transitoires (transients) vous veulent du bien
Les données transitoires (transients) vous veulent du bienLes données transitoires (transients) vous veulent du bien
Les données transitoires (transients) vous veulent du bien
 
Conversion de template HTML en thème WordPress
Conversion de template HTML en thème WordPressConversion de template HTML en thème WordPress
Conversion de template HTML en thème WordPress
 
WordPress en tant que CMS
WordPress en tant que CMSWordPress en tant que CMS
WordPress en tant que CMS
 
Les 10 Erreurs des Debutants avec WordPress
Les 10 Erreurs des Debutants avec WordPressLes 10 Erreurs des Debutants avec WordPress
Les 10 Erreurs des Debutants avec WordPress
 
Migration de données… Destination WordPress !
Migration de données… Destination WordPress !Migration de données… Destination WordPress !
Migration de données… Destination WordPress !
 
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech NantesOuvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
 
Sécuriser un site Wordpress
Sécuriser un site WordpressSécuriser un site Wordpress
Sécuriser un site Wordpress
 
Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPress
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
 
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
 
WordPress + ACF – Vers l’infini et au-delà…
WordPress + ACF – Vers l’infini et au-delà…WordPress + ACF – Vers l’infini et au-delà…
WordPress + ACF – Vers l’infini et au-delà…
 
Vue, j’avais pas vu !
Vue, j’avais pas vu !Vue, j’avais pas vu !
Vue, j’avais pas vu !
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
 
Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !Vue.js, même un dev java peut en faire !
Vue.js, même un dev java peut en faire !
 
Sécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webSécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du web
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 

Similar a Comment se charge WordPress ? Le loading du core.

Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJSVISEO
 
On test quoi - DCLannion 2017
On test quoi - DCLannion 2017On test quoi - DCLannion 2017
On test quoi - DCLannion 2017Artusamak
 
Memcached, une solution de cache par excellence
Memcached, une solution de cache par excellenceMemcached, une solution de cache par excellence
Memcached, une solution de cache par excellenceMehdi Mehni
 
WP CLI : le couteau suisse du développeur
WP CLI : le couteau suisse du développeurWP CLI : le couteau suisse du développeur
WP CLI : le couteau suisse du développeurbenjamingossetpro
 
Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPJean-Marc Fontaine
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsJulien Wittouck
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPressChi Nacim
 
Sécurité WordPress
Sécurité WordPressSécurité WordPress
Sécurité WordPressChi Nacim
 
mise en place de wordpresss sous Ubuntu 22.04
mise en place de wordpresss sous Ubuntu 22.04mise en place de wordpresss sous Ubuntu 22.04
mise en place de wordpresss sous Ubuntu 22.04Emed Lesi
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur webNoël
 
Sécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webSécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webNour El Houda
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.jsTelecomValley
 
Autour de Node.js - TechConf#3
Autour de Node.js - TechConf#3Autour de Node.js - TechConf#3
Autour de Node.js - TechConf#3Luc Juggery
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP NextSQLI
 

Similar a Comment se charge WordPress ? Le loading du core. (20)

Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJS
 
On test quoi - DCLannion 2017
On test quoi - DCLannion 2017On test quoi - DCLannion 2017
On test quoi - DCLannion 2017
 
Memcached, une solution de cache par excellence
Memcached, une solution de cache par excellenceMemcached, une solution de cache par excellence
Memcached, une solution de cache par excellence
 
Tp1 wp etud
Tp1 wp etudTp1 wp etud
Tp1 wp etud
 
WP CLI : le couteau suisse du développeur
WP CLI : le couteau suisse du développeurWP CLI : le couteau suisse du développeur
WP CLI : le couteau suisse du développeur
 
Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHP
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
Meetup laravel
Meetup laravelMeetup laravel
Meetup laravel
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPress
 
Optimiser wordpress
Optimiser wordpressOptimiser wordpress
Optimiser wordpress
 
Sécurité WordPress
Sécurité WordPressSécurité WordPress
Sécurité WordPress
 
mise en place de wordpresss sous Ubuntu 22.04
mise en place de wordpresss sous Ubuntu 22.04mise en place de wordpresss sous Ubuntu 22.04
mise en place de wordpresss sous Ubuntu 22.04
 
Cours Php
Cours PhpCours Php
Cours Php
 
Cours Php
Cours PhpCours Php
Cours Php
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web
 
Configuration PHP5
Configuration PHP5Configuration PHP5
Configuration PHP5
 
Sécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webSécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du web
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js
 
Autour de Node.js - TechConf#3
Autour de Node.js - TechConf#3Autour de Node.js - TechConf#3
Autour de Node.js - TechConf#3
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP Next
 

Más de Boiteaweb

Couleurs & Accessibilité — BlendWebMix 2017
Couleurs & Accessibilité — BlendWebMix 2017Couleurs & Accessibilité — BlendWebMix 2017
Couleurs & Accessibilité — BlendWebMix 2017Boiteaweb
 
Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017
Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017
Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017Boiteaweb
 
Transients are good for you - WordCamp London 2016
Transients are good for you - WordCamp London 2016Transients are good for you - WordCamp London 2016
Transients are good for you - WordCamp London 2016Boiteaweb
 
WordPress & les contributions — WordCamp Paris 2016
WordPress & les contributions — WordCamp Paris 2016WordPress & les contributions — WordCamp Paris 2016
WordPress & les contributions — WordCamp Paris 2016Boiteaweb
 
Freelance & WordPress (WordCamp Paris 2015)
Freelance & WordPress (WordCamp Paris 2015)Freelance & WordPress (WordCamp Paris 2015)
Freelance & WordPress (WordCamp Paris 2015)Boiteaweb
 
Colours and Accessibility (a11y) - WordCamp Europe 2014 Sofia
Colours and Accessibility (a11y) - WordCamp Europe 2014 SofiaColours and Accessibility (a11y) - WordCamp Europe 2014 Sofia
Colours and Accessibility (a11y) - WordCamp Europe 2014 SofiaBoiteaweb
 
Choisir les bons Hooks dans vos Développements WordPress
Choisir les bons Hooks dans vos Développements WordPressChoisir les bons Hooks dans vos Développements WordPress
Choisir les bons Hooks dans vos Développements WordPressBoiteaweb
 

Más de Boiteaweb (7)

Couleurs & Accessibilité — BlendWebMix 2017
Couleurs & Accessibilité — BlendWebMix 2017Couleurs & Accessibilité — BlendWebMix 2017
Couleurs & Accessibilité — BlendWebMix 2017
 
Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017
Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017
Mise à jour sur la sécurité WordPress – WordCamp Bordeaux 2017
 
Transients are good for you - WordCamp London 2016
Transients are good for you - WordCamp London 2016Transients are good for you - WordCamp London 2016
Transients are good for you - WordCamp London 2016
 
WordPress & les contributions — WordCamp Paris 2016
WordPress & les contributions — WordCamp Paris 2016WordPress & les contributions — WordCamp Paris 2016
WordPress & les contributions — WordCamp Paris 2016
 
Freelance & WordPress (WordCamp Paris 2015)
Freelance & WordPress (WordCamp Paris 2015)Freelance & WordPress (WordCamp Paris 2015)
Freelance & WordPress (WordCamp Paris 2015)
 
Colours and Accessibility (a11y) - WordCamp Europe 2014 Sofia
Colours and Accessibility (a11y) - WordCamp Europe 2014 SofiaColours and Accessibility (a11y) - WordCamp Europe 2014 Sofia
Colours and Accessibility (a11y) - WordCamp Europe 2014 Sofia
 
Choisir les bons Hooks dans vos Développements WordPress
Choisir les bons Hooks dans vos Développements WordPressChoisir les bons Hooks dans vos Développements WordPress
Choisir les bons Hooks dans vos Développements WordPress
 

Comment se charge WordPress ? Le loading du core.