Cours WordPress — Semaine 4

FORMATION WORDPRESS · MODULE 04/08 · 10 HEURES

Construire ses pages personnalisées et les templates du site

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 →

Cette semaine transforme le thème natif en site complet : accueil, blog, pages Services/Contact, archives de catégories, recherche, pagination et pages 404. Vous apprendrez la différence entre une page éditable et son template PHP.

Votre livrable professionnel

Accueil codé, liste des articles avec pagination, page d’article, page Contact personnalisée, template réutilisable, archives de catégories, recherche et page 404.

Comment travailler ce module ?

  1. Lisez la notion et l’exemple.
  2. Reproduisez le code sur un WordPress de test, jamais sur le site d’un client.
  3. Vérifiez le résultat attendu et enregistrez une preuve.
  4. Validez votre étape avec le switch du panneau de progression.
  5. 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 les archives et Template Parts

Page de blog et cartes d’articles Quand une page « Blog » est définie comme page des articles dans Réglages → Lecture, son affichage vient du template home.php , pas du texte édité dans la Page…

Action : lire la procédure, la reproduire, puis activer le switch après contrôle du résultat.

ÉTAPE 02 / 05

Régler pagination et requête principale

Pagination, archives et catégories Une archive présente plusieurs contenus partageant une date, un auteur, un type ou une catégorie. Le template category.php peut utiliser la requête principale…

Action : lire la procédure, la reproduire, puis activer le switch après contrôle du résultat.

ÉTAPE 03 / 05

Intégrer taxonomies et templates CPT

Créer une page Contact custom et réutilisable Pour les pages classiques, page.php suffit souvent. Pour un design particulier, un fichier comme page-contact.php cible le slug contact ; un…

Action : lire la procédure, la reproduire, puis activer le switch après contrôle du résultat.

ÉTAPE 04 / 05

Configurer Gutenberg et theme.json

Adapter templates et édition Gutenberg Un bon template détermine la structure, pendant que WordPress garde les données modifiables. theme.json permet de proposer une palette et des réglages de…

Action : lire la procédure, la reproduire, puis activer le switch après contrôle du résultat.

ÉTAPE 05 / 05

Tester recherches vides et 404

Recherche, erreur 404 et recette de navigation Un utilisateur va tôt ou tard rechercher un terme absent ou ouvrir une mauvaise adresse. Une expérience soignée prévoit aussi ces cas. Exemple…

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 de progression du module 4
Schéma pédagogique illustratif : ce n’est pas une capture réelle de votre écran WordPress.
ATELIER 01

Créer les archives et Template Parts

↖ Revenir au parcours

MODE DÉBUTANT · ÉTAPE 01

Vous partez de zéro ? Suivez chaque clic.

Les pages WordPress n’ont pas toutes la même fonction. Nous allons distinguer accueil, page de contenu, liste du blog, article, archive et page de contact.

Où aller ?

Thème de test → page.php, front-page.php, home.php ; WordPress → Réglages → Lecture.

Manipulation expliquée pas à pas
  1. 01
    Dans le thème de test, créez page.php qui affiche le titre et le contenu de la Page WordPress courante.
  2. 02
    Créez front-page.php pour la page d’accueil du site ; ajoutez un hero, des services et un bouton Contact.
  3. 03
    Créez home.php pour la liste des articles du blog ; utilisez la boucle principale.
  4. 04
    Dans WordPress → Réglages → Lecture, affectez Accueil et Blog à leurs rôles respectifs.
  5. 05
    Visitez /, /blog/ et /contact/ ; notez quel template s’applique à chaque URL.
Exemple à observer ou reproduire

// Idée de la hiérarchie classique : // URL racine : front-page.php (si présent) // Index des articles : home.php (si présent) // Page standard : page.php // Article : single.php // Secours : index.php

✓ Résultat attendu

L’accueil utilise front-page.php, Blog affiche une liste d’articles et Contact une page standard.

Si cela ne fonctionne pas

Attention : home.php est le blog, pas nécessairement l’accueil. La hiérarchie des templates peut masquer page.php si un fichier plus spécifique existe.

À retenir

Hiérarchie de templates : ordre de choix des fichiers utilisés par WordPress.

Page de blog et cartes d’articles

Quand une page « Blog » est définie comme page des articles dans Réglages → Lecture, son affichage vient du template home.php, pas du texte édité dans la Page Blog.

Exemple de home.php

<?php get_header(); ?> <main id="contenu" class="container"> <h1>Blog et conseils</h1> <div class="cards"> <?php while ( have_posts() ) : the_post(); ?> <?php get_template_part( 'template-parts/content', 'card' ); ?> <?php endwhile; ?> </div> <?php the_posts_pagination(); ?> </main> <?php get_footer(); ?>

Pas à pas

  1. Créez home.php dans le thème.
  2. Créez une carte d’article : image, titre, extrait, lien complet et catégorie.
  3. Dans Réglages → Lecture, fixez 5 articles par page.
  4. Publiez au moins 11 articles de test.
  5. Contrôlez pages 1, 2 et 3 ; la pagination doit conserver des URL différentes.

À éviter : utiliser query_posts() pour remplacer la requête principale, ou oublier les cas « aucun article ».

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.

ATELIER 02

Régler pagination et requête principale

↖ Revenir au parcours

MODE DÉBUTANT · ÉTAPE 02

Vous partez de zéro ? Suivez chaque clic.

Un blog professionnel a besoin d’une liste paginée, de catégories et d’un lien vers chaque article. La pagination doit être reliée à la requête principale.

Où aller ?

Articles → Ajouter ; Réglages → Lecture ; thème → home.php.

Manipulation expliquée pas à pas
  1. 01
    Publiez au moins 13 articles de démonstration, avec des titres différenciés et deux catégories.
  2. 02
    Dans Réglages → Lecture, choisissez 5 articles par page pour l’exercice.
  3. 03
    Dans home.php, affichez les articles avec la boucle principale et le composant template-parts/card-post.php.
  4. 04
    Après la boucle, appelez the_posts_pagination() pour afficher les pages suivantes.
  5. 05
    Visitez la page 1, puis la page 2 ; vérifiez que les titres affichés changent et que les URL sont valides.
Exemple à observer ou reproduire

<?php if (have_posts()) : ?> <div class="posts-grid"> <?php while (have_posts()) : the_post(); ?> <?php get_template_part('template-parts/card-post'); ?> <?php endwhile; ?> </div><?php the_posts_pagination(); ?> <?php endif; ?>

✓ Résultat attendu

Le blog affiche 5 publications par page et permet de naviguer vers une deuxième page sans répéter les mêmes articles.

Si cela ne fonctionne pas

Le remplacement de la requête principale par query_posts() peut casser la pagination. Utilisez la requête principale ou gérez explicitement paged avec WP_Query.

À retenir

Pagination : navigation entre plusieurs séries de résultats. Archive : liste d’un type de contenu.

Pagination, archives et catégories

Une archive présente plusieurs contenus partageant une date, un auteur, un type ou une catégorie. Le template category.php peut utiliser la requête principale sans lancer d’autre requête.

Exemple de category.php

<?php get_header(); ?> <main id="contenu" class="container"> <h1><?php single_cat_title(); ?></h1> <?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <?php get_template_part( 'template-parts/content', 'card' ); ?> <?php endwhile; ?> <?php the_posts_pagination(); ?> <?php else : ?> <p>Aucun article dans cette catégorie.</p> <?php endif; ?> </main> <?php get_footer(); ?>

Pas à pas

  1. Ouvrez la catégorie « Conseils WordPress » depuis un article.
  2. Inspectez le titre et la liste affichée ; testez un second terme.
  3. Créez category.php et personnalisez l’introduction.
  4. Vérifiez les URLs /category/conseils-wordpress/ (si permaliens configurés ainsi).
  5. Ajoutez un état vide dans une catégorie sans publications.

Résultat

Une seule archive s’adapte à chaque catégorie, sans dupliquer chaque page manuellement.

Point de contrôle 02

Le résultat est-il reproductible ? Gardez une preuve (capture ou extrait de code), puis validez l’interrupteur « Étape 02 » dans votre suivi.

ATELIER 03

Intégrer taxonomies et templates CPT

↖ Revenir au parcours

MODE DÉBUTANT · ÉTAPE 03

Vous partez de zéro ? Suivez chaque clic.

Une catégorie est une classification des articles ; un modèle taxonomy ou category permet d’en contrôler la présentation.

Où aller ?

Articles → Catégories ; thème → category.php.

Manipulation expliquée pas à pas
  1. 01
    Dans Articles → Catégories, créez « Conseils » et « Actualités ».
  2. 02
    Associez plusieurs articles à chaque catégorie.
  3. 03
    Créez category.php dans le thème d’exercice ; utilisez single_cat_title() pour le titre et la Loop pour les articles.
  4. 04
    Ajoutez une carte d’article réutilisable et les liens vers les articles.
  5. 05
    Visitez chaque URL de catégorie et vérifiez que seuls les articles concernés apparaissent.
Exemple à observer ou reproduire

<h1><?php single_cat_title(); ?></h1> <?php while (have_posts()) : the_post(); ?> <?php get_template_part('template-parts/card-post'); ?> <?php endwhile; ?>

✓ Résultat attendu

Les deux catégories ont chacune leur archive et ne présentent que les publications associées.

Si cela ne fonctionne pas

Si une catégorie affiche un résultat inattendu, contrôlez son slug et l’affectation des articles dans leur panneau de réglages.

À retenir

Catégorie : taxonomie native des articles. Slug : identifiant d’URL sans espaces.

Créer une page Contact custom et réutilisable

Pour les pages classiques, page.php suffit souvent. Pour un design particulier, un fichier comme page-contact.php cible le slug contact ; un template déclaré permet un choix explicite dans l’éditeur.

Exemple : page-templates/contact.php

<?php /** * Template Name: Contact Agence * Template Post Type: page */ get_header(); ?> <main id="contenu" class="container"> <?php while ( have_posts() ) : the_post(); ?> <h1><?php the_title(); ?></h1> <div class="contact-layout"> <div><?php the_content(); ?></div> <aside><h2>Nos coordonnées</h2><p>Adresse à compléter</p></aside> </div> <?php endwhile; ?> </main> <?php get_footer(); ?>

Pas à pas

  1. Créez page-templates/contact.php dans le thème.
  2. Dans Pages → Contact → Modèle, sélectionnez « Contact Agence ».
  3. Ajoutez l’adresse, un plan et un formulaire depuis une extension de confiance.
  4. Vérifiez que le contenu reste modifiable dans WordPress sans retoucher PHP.
  5. Testez un envoi de formulaire dans staging et vérifiez la réception de l’e-mail.

Sécurité : ne construisez pas un formulaire d’envoi PHP non protégé au hasard. Nonce, validation serveur, permissions et protections anti-spam doivent être traités ; voir le module plugins.

Point de contrôle 03

Le résultat est-il reproductible ? Gardez une preuve (capture ou extrait de code), puis validez l’interrupteur « Étape 03 » dans votre suivi.

ATELIER 04

Configurer Gutenberg et theme.json

↖ Revenir au parcours

MODE DÉBUTANT · ÉTAPE 04

Vous partez de zéro ? Suivez chaque clic.

Certains sites ont besoin d’un modèle spécial pour la page Contact. Vous pouvez créer un template PHP sélectionnable depuis l’éditeur de Pages.

Où aller ?

Thème → template-contact.php ; WordPress → Pages → Contact → Modèle.

Manipulation expliquée pas à pas
  1. 01
    Dans le thème d’exercice, créez template-contact.php avec l’en-tête « Template Name: Contact agence ».
  2. 02
    Ajoutez get_header(), le titre, le contenu modifiable et une section de coordonnées.
  3. 03
    Dans WordPress → Pages → Contact → Réglages, choisissez le modèle « Contact agence » s’il est proposé.
  4. 04
    Ajoutez une carte Google Maps ou OpenStreetMap seulement si elle est nécessaire et conforme à votre politique de données.
  5. 05
    Pour un formulaire réel, utilisez une extension éprouvée ou un code sécurisé séparé ; une simple balise form HTML n’envoie aucun message toute seule.
  6. 06
    Testez l’accès clavier aux liens et aux champs du formulaire choisi.
Exemple à observer ou reproduire

<?php /* Template Name: Contact agence */ get_header(); ?> <main class="container" id="contenu"> <?php while(have_posts()): the_post(); ?> <h1><?php the_title(); ?></h1> <?php the_content(); ?> <?php endwhile; ?> </main> <?php get_footer(); ?>

✓ Résultat attendu

Contact utilise le modèle choisi ; le texte reste éditable et le formulaire de l’extension gère les envois sans exposer de secrets.

Si cela ne fonctionne pas

Un formulaire HTML sans traitement serveur ne peut pas envoyer un e-mail. Testez la réception réelle, la validation et l’anti-spam.

À retenir

Template Name : en-tête reconnu par WordPress pour rendre un modèle sélectionnable.

Adapter templates et édition Gutenberg

Un bon template détermine la structure, pendant que WordPress garde les données modifiables. theme.json permet de proposer une palette et des réglages de l’éditeur, même dans un thème classique.

Exemple theme.json (WordPress récent)

{ "version": 3, "settings": { "color": { "palette": [ { "name": "Bleu", "slug": "bleu", "color": "#18324c" }, { "name": "Corail", "slug": "corail", "color": "#d95e4f" } ] } } }

Pas à pas

  1. Ajoutez theme.json dans le dossier du thème.
  2. Dans l’éditeur de la page Services, créez une section avec un titre, une grille et un CTA.
  3. Vérifiez l’alignement des couleurs entre l’éditeur et le frontend.
  4. Comparez un template personnalisé à une page (page-contact.php) avec un template assignable (Template Name).
  5. Réutilisez un Template Part pour l’affichage de cartes sans dupliquer son HTML.

Résultat

Le développeur contrôle la structure et l’utilisateur peut modifier les contenus prévus par le template.

Point de contrôle 04

Le résultat est-il reproductible ? Gardez une preuve (capture ou extrait de code), puis validez l’interrupteur « Étape 04 » dans votre suivi.

ATELIER 05

Tester recherches vides et 404

↖ Revenir au parcours

MODE DÉBUTANT · ÉTAPE 05

Vous partez de zéro ? Suivez chaque clic.

Le site doit réagir aux erreurs : page inexistante, recherche vide, ancien lien ou page de catégorie sans publication.

Où aller ?

Thème → 404.php, search.php ; navigateur → URL /page-qui-nexiste-pas/.

Manipulation expliquée pas à pas
  1. 01
    Créez 404.php avec un message simple et un bouton « Retour à l’accueil ».
  2. 02
    Créez search.php avec get_search_query() échappé et un message alternatif si aucun résultat.
  3. 03
    Dans WordPress → Pages, publiez une page « Réalisations » puis testez son affichage ; ne confondez pas page et archive d’un CPT métier.
  4. 04
    Dans le navigateur, ouvrez une URL volontairement inexistante ; confirmez que la page 404 est compréhensible.
  5. 05
    Testez une recherche improbable et vérifiez que l’interface propose de revenir au site.

Exemple concret : Exemple de titre : « Page introuvable » ; bouton « Revenir à l’accueil » ; moteur de recherche facultatif.

✓ Résultat attendu

Les visiteurs ne tombent pas sur une page blanche et disposent d’un chemin de retour.

Si cela ne fonctionne pas

Une erreur 404 n’est pas un bug à masquer en redirigeant systématiquement vers l’accueil : corrigez les liens cassés réels.

À retenir

404 : statut HTTP d’une ressource inexistante. 301 : redirection permanente justifiée.

Recherche, erreur 404 et recette de navigation

Un utilisateur va tôt ou tard rechercher un terme absent ou ouvrir une mauvaise adresse. Une expérience soignée prévoit aussi ces cas.

Exemple search.php (structure minimale)

<?php get_header(); ?> <main id="contenu" class="container"> <h1>Résultats de recherche</h1> <?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <a href="<?php echo esc_url( get_permalink() ); ?>"> <?php echo esc_html( get_the_title() ); ?> </a> <?php endwhile; ?> <?php the_posts_pagination(); ?> <?php else : ?><p>Aucun résultat.</p><?php endif; ?> </main> <?php get_footer(); ?>

Pas à pas

  1. Ajoutez search.php et 404.php avec un message utile et un lien Accueil.
  2. Saisissez une expression présente dans un article puis une expression inexistante.
  3. Ouvrez une URL inventée et vérifiez le statut HTTP 404 (pas une page 200 déguisée).
  4. Contrôlez les chemins accueil → blog → article → catégorie → contact et le menu sur mobile.
  5. Corrigez les liens cassés et documentez l’arborescence finale.

Livrable

Carte de navigation complète, captures des pages personnalisées et rapport de recette responsive.

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.

SOURCES & SUPPORTS

Ressources du module

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.

1. Quelle fonction pagine la requête principale ?
2. Un thème classique peut-il utiliser theme.json ?
3. Où déclarer un CPT métier ?
4. Quand la page Blog est définie comme « page des articles », quel template classique est utilisé en priorité ?
5. Quel mécanisme permet de sélectionner « Contact Agence » dans les attributs de la page ?

Connexion nécessaire pour enregistrer la note et les corrections.