Vous débutez totalement ? Commencez par la section « Mode débutant » de chaque atelier : elle explique où cliquer, quoi faire et comment vérifier votre résultat. Le code vient après les manipulations simples. Voir aussi le guide de prise en main →
Avant de coder un thème ou un plugin, apprenez à séparer les responsabilités, à employer les Hooks et à charger proprement les fichiers CSS/JS. Cette semaine transforme des exemples copiés en code expliqué et maintenable.
Votre livrable professionnel
Deux petites classes PHP distinctes, un fichier composer.json cohérent, un Hook action et un filtre fonctionnels, un CSS chargé avec wp_enqueue_style et une fiche de tests.
Comment travailler ce module ?
Lisez la notion et l’exemple.
Reproduisez le code sur un WordPress de test, jamais sur le site d’un client.
Vérifiez le résultat attendu et enregistrez une preuve.
Validez votre étape avec le switch du panneau de progression.
Terminez par le quiz noté, tout en bas de la page.
PARCOURS GUIDÉ
Cinq étapes pour produire un résultat concret
Cliquez sur une étape pour découvrir sa mission. Le bouton « Aller à cette étape dans le cours » ouvre directement sa procédure détaillée. Le switch en colonne de droite enregistre votre avancement.
ÉTAPE 01 / 05
Créer deux classes aux responsabilités distinctes
Des fonctions aux classes Une classe regroupe une responsabilité. Évitez une classe unique contenant menus, API, formulaire et SEO : les modifications deviennent difficiles à tester. Exemple de…
Action : lire la procédure, la reproduire, puis activer le switch après contrôle du résultat.
ÉTAPE 02 / 05
Configurer Composer et PSR-4
Autoload et Composer Un autoload évite les dizaines de require_once . Composer peut créer le chargeur PSR-4, mais ce n’est pas une obligation pour installer les pages de l’Académie . Il s’agit…
Action : lire la procédure, la reproduire, puis activer le switch après contrôle du résultat.
ÉTAPE 03 / 05
Enregistrer une Action et un Filter
Actions vs filtres Une action déclenche une opération ; un filtre reçoit une valeur et doit la retourner . Exemple : filtre de classes HTML add_filter( ‘body_class’, function ( array $classes ):…
Action : lire la procédure, la reproduire, puis activer le switch après contrôle du résultat.
ÉTAPE 04 / 05
Charger CSS/JS conditionnellement
Charger CSS et JavaScript de manière WordPress Le navigateur peut voir une ressource, mais WordPress a besoin de connaître sa version, ses dépendances et le contexte d’usage. Exemple fiable pour…
Action : lire la procédure, la reproduire, puis activer le switch après contrôle du résultat.
ÉTAPE 05 / 05
Lancer tests unitaires et contrôle qualité
Tester avant de livrer Un code qui s’affiche une fois ne suffit pas. Il faut une méthode reproductible et des vérifications ciblées. Protocole manuel Activez un journal PHP sur votre staging…
Action : lire la procédure, la reproduire, puis activer le switch après contrôle du résultat.
COURS APPROFONDI & ATELIERS
Comprendre, coder et construire le site
Ces exemples sont volontairement progressifs. Les extraits de code s’exécutent dans des fichiers PHP d’un thème/plugin WordPress, pas directement dans le texte d’une page LiveCanvas.
Schéma pédagogique illustratif : ce n’est pas une capture réelle de votre écran WordPress.
PHP produit le HTML de nombreux thèmes et plugins WordPress. Avant les classes, révisez variables, conditions et fonctions : ces éléments sont indispensables pour lire un template.
⌖
Où aller ?
Fichiers du thème d’exercice ; éditeur de code ; navigateur.
Manipulation expliquée pas à pas
01
Installez un éditeur de code (par exemple VS Code) et ouvrez le dossier d’un thème d’exercice.
02
Créez un fichier aide-exemples.php destiné à la lecture locale, pas à une publication accessible en ligne.
03
Identifiez dans le code ci-dessous la variable $nom, la fonction esc_html() et la condition if.
04
Expliquez à l’oral ce qui change quand $nom passe de « Atelier Horizon » à « Mon agence ».
05
Recopiez l’exemple dans un template WordPress de test seulement si vous maîtrisez le contexte PHP ; observez la sortie HTML dans le navigateur.
Exemple à observer ou reproduire
<?php
$nom = 'Atelier Horizon';
if ($nom !== '') {
echo '<p>Bienvenue chez ' . esc_html($nom) . '</p>';
}
✓ Résultat attendu
Vous pouvez lire une variable, repérer une condition et expliquer pourquoi esc_html protège du contenu affiché.
Si cela ne fonctionne pas
Si le navigateur affiche littéralement « <?php », votre fichier n’est pas interprété par PHP : vérifiez que le code se trouve dans un vrai template PHP.
À retenir
Variable : donnée nommée. Condition : instruction exécutée si une règle est vraie. Fonction : bloc de code réutilisable.
Des fonctions aux classes
Une classe regroupe une responsabilité. Évitez une classe unique contenant menus, API, formulaire et SEO : les modifications deviennent difficiles à tester.
Exemple de classe simple
namespace Atelier\Frontend;
final class Assets {
public function hooks(): void {
add_action( 'wp_enqueue_scripts', [ $this, 'enqueue' ] );
}
public function enqueue(): void {
wp_enqueue_style( 'atelier-main', get_theme_file_uri( '/assets/css/main.css' ), [], '1.0' );
}
}
Pas à pas
Créez src/Frontend/Assets.php dans votre thème de test.
Recopiez le code ; vérifiez l’ouverture <?php et la correspondance namespace/classe.
Créez une classe ContentManager vide pour distinguer les contenus des ressources.
Reformulez à l’oral le rôle de chaque méthode et la différence entre new et static.
Résultat attendu
Le fichier PHP se charge sans erreur de syntaxe ; la responsabilité de chaque classe est claire. Son utilisation sera branchée à WordPress à l’étape suivante.
Point de contrôle 01
Le résultat est-il reproductible ? Gardez une preuve (capture ou extrait de code), puis validez l’interrupteur « Étape 01 » dans votre suivi.
À mesure que le projet grandit, organiser le code par fichiers évite les duplications. Composer et PSR-4 sont utiles pour des projets structurés ; commencez par comprendre leur objectif.
⌖
Où aller ?
Projet de développement → composer.json et src/Frontend/AssetManager.php.
Manipulation expliquée pas à pas
01
Dans le dossier de votre projet d’exercice, créez un répertoire src/Frontend.
02
Créez une classe AssetManager dans le fichier src/Frontend/AssetManager.php ; observez la correspondance namespace/dossiers.
03
Créez composer.json avec l’autoload PSR-4 montré ci-dessous.
04
Exécutez « composer dump-autoload » uniquement sur votre machine de développement disposant de Composer. Si vous n’utilisez pas de terminal, analysez la structure sans exécuter cette étape.
05
Vérifiez l’existence du fichier vendor/autoload.php et ne téléversez pas de dépendances inutiles en production.
Exemple à observer ou reproduire
{
"autoload": {"psr-4": {"Agency\\": "src/"}}
}
✓ Résultat attendu
Vous savez expliquer comment le namespace Agency\Frontend correspond à src/Frontend/ et pourquoi Composer facilite le chargement.
Si cela ne fonctionne pas
« Class not found » indique souvent un chemin incorrect, un nom de fichier dont la casse diffère ou un autoload non généré.
À retenir
Namespace : préfixe logique d’une classe. Autoload : chargement automatique des classes.
Conseil : Composer n’est pas nécessaire pour créer votre toute première page WordPress : il intervient ici comme apprentissage progressif.
Autoload et Composer
Un autoload évite les dizaines de require_once. Composer peut créer le chargeur PSR-4, mais ce n’est pas une obligation pour installer les pages de l’Académie. Il s’agit ici d’un outil de développement PHP.
Les Hooks sont les points d’extension WordPress. Une action déclenche du code ; un filtre reçoit une donnée et renvoie la donnée éventuellement modifiée.
Dans le thème enfant d’exercice, ouvrez functions.php.
02
Ajoutez un petit Hook after_setup_theme qui active la gestion du titre par WordPress.
03
Ajoutez le filtre documenté ci-dessous pour comprendre le retour d’une chaîne.
04
Chargez le site et affichez le titre de l’onglet du navigateur.
05
Supprimez le filtre de test après observation et notez la différence entre add_action et add_filter.
Exemple à observer ou reproduire
add_action('after_setup_theme', function () {
add_theme_support('title-tag');
});
add_filter('excerpt_length', function ($length) {
return 22;
});
✓ Résultat attendu
Le site charge correctement et vous pouvez expliquer ce qui arrive si un callback de filtre n’effectue pas de return.
Si cela ne fonctionne pas
Si une modification casse le site, renommez temporairement le fichier modifié via l’hébergement ou restaurez votre copie : ne multipliez pas les essais dans une page d’administration inaccessible.
À retenir
Action : événement exécutant du code. Filtre : opération sur une valeur retournée.
Actions vs filtres
Une action déclenche une opération ; un filtre reçoit une valeur et doit la retourner.
Le navigateur doit recevoir le CSS et le JavaScript dans un ordre contrôlé. WordPress possède des fonctions dédiées : ne placez pas arbitrairement des balises <script> dans les pages.
Apprendre à développer signifie aussi apprendre à observer et corriger. Vous n’avez pas besoin d’une suite de tests sophistiquée le premier jour ; commencez par une recette manuelle solide.
⌖
Où aller ?
Navigateur → Inspecter → Console/Réseau ; projet de développement → tests/.
Manipulation expliquée pas à pas
01
Relisez functions.php et notez les changements effectués et leur objectif.
02
Ouvrez la page sur mobile et ordinateur ; contrôlez la présence du CSS et l’absence d’erreur réseau.
03
Dans l’inspecteur du navigateur, consultez Console et Réseau ; relevez les éventuelles erreurs.
04
Si Composer et PHPUnit sont installés localement, créez un premier test d’une fonction PHP pure ; sinon conservez cette étape comme exercice avancé.
05
Livrez une fiche « hypothèse → test → observation → correction » pour un problème que vous avez rencontré.
Exemple concret : Exemple de fiche : « CSS absent → 404 sur /assets/css/site.css → mauvais nom de dossier → chemin corrigé → affichage OK ».
✓ Résultat attendu
Votre site d’exercice s’ouvre sans erreur bloquante et vous savez documenter un diagnostic reproductible.
Si cela ne fonctionne pas
Une console sans erreur ne garantit pas l’absence de bugs ; testez aussi le menu, les liens, le clavier et les formulaires.
À retenir
Test unitaire : vérification ciblée d’un comportement. Régression : erreur introduite par une modification récente.
Tester avant de livrer
Un code qui s’affiche une fois ne suffit pas. Il faut une méthode reproductible et des vérifications ciblées.
Protocole manuel
Activez un journal PHP sur votre staging privé, jamais en exposition publique.
Chargez Accueil, Article et Contact avec l’inspecteur navigateur ouvert.
Vérifiez les requêtes réseau CSS/JS et l’absence d’erreurs console.
Déclenchez volontairement un chemin d’asset inexistant, identifiez le 404, puis corrigez-le.
Utilisez php -l sur votre machine si PHP est disponible ; ajoutez PHPCS/WPCS en étape avancée.
Conservez la version du code dans Git avec une note de test.
Preuve attendue
Capture de l’onglet Réseau, un journal de modifications et une explication claire de l’incident provoqué.
Limite : PHPCS et un contrôle syntaxique ne démontrent ni l’absence de failles ni la compatibilité totale de WordPress.
Point de contrôle 05
Le résultat est-il reproductible ? Gardez une preuve (capture ou extrait de code), puis validez l’interrupteur « Étape 05 » dans votre suivi.
Documentation officielle : Consulter la référence WordPress ↗. Vidéos : ajoutez des tutoriels enregistrés et vérifiés dans LiveCanvas ; aucune vidéo factice n’est présentée comme un cours existant.
Note pédagogique — Les PDF sont des supports transversaux. Les extraits de code et procédures enrichies de cette page font partie de la V2.3. Les corrigés détaillés des quiz apparaissent seulement après soumission du questionnaire.
FIN DU MODULE · ÉVALUATION
Vérifiez vos connaissances
Répondez aux cinq questions. Après correction, découvrez votre note sur 20, le nombre d’erreurs et l’explication de chaque réponse. Quatre réponses correctes sur cinq sont nécessaires pour valider le nouveau quiz.