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).

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 .htaccess dans 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)
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)
  • wp-config.php (18:33)
  • 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 $_SERVER selon 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)

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) .