Table des matières
Créé le: 2023-06-13 ; Révisé le: 2023-06-13
Développons avec Simon - 5 - Explorer le code source de WordPress
Vidéo (59 minutes)
Introduction (00:00)
Explication du but de la vidéo (regarder le code source de WordPress pour voir comment c’est fait et se donner des idées sur comment programmer).
- Qu’est-ce que WordPress? (01:30)
- Le site que je vais utiliser (02:10)
- Vous pouvez avoir le code source sur https://wordpress.org/ (02:38)
- ou sur GitHub https://github.com/WordPress/WordPress (03:40)
Ouvrir le code (04:11)
- J’utilise phpStorm https://www.jetbrains.com/phpstorm
- Quelques guide sur les répertoires et fichiers en tant qu’utilisateur (04:45)
- wp-config.php (04:55)
- index.php (05:13)
- Avoir de beaux urls avec
.htaccessdans Apache httpd (05:55) - wp-content (06:54)
- languages
- themes
- plugins
- uploads
- Les points d’entrées (09:07)
- Les beaux urls
- .htaccess avec mod_rewrite d’Apache httpd (10:30)
- index.php (12:30)
- wp-blog-header.php (14:22)
- Modèle de programmation: charger une partie de code une seule fois même si le fichier est inclus plusieurs fois (14:53)
- Les beaux urls
if ( !isset($feature_X_charger_une_seule_fois) ) {
$feature_X_charger_une_seule_fois = true;
// Le code à exécuter une seule fois
}
- wp-load.php (16:14)
- Constante PHP
__DIR__(17:22) - Configuration dynamique du
error_reporting(17:43)
- Constante PHP
- wp-config.php (18:33)
- Définir des constantes avec
define(18:33) - Sécurité des cookies avec des clés et sels (18:54)
- Définir des constantes avec
- wp-settings.php (22:47)
- version.php (23:50)
- version de WordPress
- version de la base de données
- version de TinyMCE
- version requise de PHP
- version requise de MySQL
- wp-settings.php (25:43)
- load.php (26:06)
- plusieurs fonctions utiles
- quelques fixes de
$_SERVERselon le serveur web (26:45) - gestion des utilisateurs avec Basic Auth (28:27)
- Modèle de programmation: l’ordre des définitions des fonctions (29:11)
- WordPress a décidé de définir les fonctions dans l’ordre qu’elles sont appelées (les unes après les autres)
- Il aurait aussi pu les définir avant de les utiliser à la place, mais il faudrait lire le fichier de bas en haut
- WordPress supporte plusieurs types d’environnement (30:37)
'local', 'development', 'staging', 'production'
- Retourne un favicon vide si le thème n’en définit pas au lieu de retourner une erreur 404 (31:39)
- Gestion du mode de maintenance (33:17)
- Modèle de programmation: utiliser un fichier pour activer une fonctionnalité (33:17)
- Modèle de programmation: utiliser un horodatage et expiration pour annuler une fonctionnalité si le processus à planté pendant l’exécution (36:19)
- Modèle de programmation: Système d’extension du code en permettant d’enregistrer des fonctions de
rappels (système de “filtres” dans WordPress) (37:50)
- Trouver tous les filtres disponibles (39:15)
- Gestion du débogage de WordPress (41:36)
- Gestion de la connexion de la base de données avec un objet dans
$wpdb(45:18)- class-wpdb.php - Définition de la classe de
$wpdb(46:29)- Les tables réservées dans WordPress (47:01)
- Fonction
query(52:02)- utilise le système de filtre. Exemple d’utilisation: l’extension “Query Monitor” (52:45)
- Initialisation avec les paramètres dans wp-config (55:39)
- class-wpdb.php - Définition de la classe de
Mot de la fin (56:36)
Il reste encore beaucoup à explorer pour voir l’entièreté de WordPress. Par exemple, il supporte les Flux RSS (56:55) .