Chapitre 2.3 — Contenus : articles, pages, médias
⏱️ TL;DR — Un contenu WordPress a un cycle de vie (brouillon → en attente → publié → corbeille) et un statut, des révisions (historique automatique), et des métadonnées (image mise en avant, extrait, auteur, date). Les médias vivent dans la Bibliothèque et, à chaque upload d’image, WordPress génère plusieurs tailles — un point à maîtriser pour la performance. Bien gérer contenus et médias, c’est éviter des pièges qui coûtent cher (images énormes, contenus orphelins, statuts mal compris).
🎯 Objectifs
- Comprendre les statuts et le cycle de vie d’un contenu.
- Utiliser les révisions et l’autosave.
- Maîtriser la bibliothèque de médias et les tailles d’images générées.
- Éviter les pièges de performance liés aux images.
1. Le cycle de vie d’un contenu
Tout article ou page passe par des statuts :
| Statut | Signification |
|---|---|
| Brouillon (draft) | En cours, non visible publiquement. |
| En attente de relecture (pending) | Soumis (typiquement par un Contributeur) pour validation. |
| Publié (publish) | Visible publiquement. |
| Planifié (future) | Publication programmée à une date future (déclenchée par WP-Cron, Partie 5). |
| Privé (private) | Visible seulement des utilisateurs connectés autorisés. |
| Corbeille (trash) | Supprimé « soft » (récupérable) avant suppression définitive. |
💡 Pour un dev React — Ces statuts ne sont pas décoratifs : en Partie 9 (headless/REST API), vous filtrerez les contenus par
status. La REST API ne renvoie par défaut que les contenuspublishaux visiteurs non authentifiés ; récupérer des brouillons (pour une preview Next.js) exige une authentification. Le statut est donc un concept d’API, pas juste d’admin.
2. Révisions & autosave
WordPress enregistre automatiquement des révisions : à chaque enregistrement, une copie de l’état précédent est conservée. Vous pouvez comparer deux versions et restaurer l’ancienne (panneau latéral → Révisions). L’autosave protège d’une fermeture accidentelle (une sauvegarde temporaire par article).
⚠️ Piège — Sur un gros site ancien, les révisions peuvent gonfler la base de données (des dizaines de révisions par article). On peut en limiter le nombre via
wp-config.php:
define( 'WP_POST_REVISIONS', 10 ); // garder 10 révisions max par contenu
// ou false pour désactiver (déconseillé)3. La bibliothèque de médias
Médias → Bibliothèque : tous les fichiers uploadés (images, PDF, vidéos, audio). Les fichiers sont physiquement stockés dans wp-content/uploads/, organisés par année/mois (uploads/2026/07/).
Chaque média est en réalité un contenu de type attachment (pièce jointe) avec ses propres métadonnées : titre, texte alternatif (alt, essentiel pour l’accessibilité et le SEO), légende, description.
4. Les tailles d’images générées (crucial pour la perf)
À chaque upload d’image, WordPress crée plusieurs versions redimensionnées :
| Taille | Rôle | Réglage |
|---|---|---|
| Miniature (thumbnail) | Vignettes (150×150 par défaut, recadrée). | Réglages → Médias |
| Moyenne (medium) | Insertion moyenne. | Réglages → Médias |
| Grande (large) | Insertion grande. | Réglages → Médias |
| Full | L’original tel quel. | — |
| Tailles de thème/plugins | Ex. « héros », « carte produit ». | Déclarées en code (add_image_size(), Partie 6). |
WordPress sert ensuite la bonne taille selon le contexte (et génère un attribut srcset responsive). Le corollaire : un upload = plusieurs fichiers sur le disque.
⚠️ Piège — les images énormes. Un client upload une photo de 6000×4000 px et 8 Mo directement dans un article. Même si WordPress génère des tailles plus petites, l’original reste lourd, et un thème mal fait peut servir le full. Redimensionnez et compressez avant upload (ou utilisez un plugin d’optimisation d’images). C’est la première cause de lenteur des sites WordPress — et un service que vous pouvez facturer (Partie 11 : performance).
💡 Pour un dev React — Les tailles générées +
srcsetsont l’équivalent maison du composant<Image>de Next.js (responsive, formats optimisés). En headless, vous récupérerez ces tailles via l’API média ; côté Next.js, vous pourrez recadrer/optimiser à votre tour avecnext/image. Connaître les tailles disponibles évite de servir du full inutilement.
5. Organiser & retrouver
- Filtres dans la liste des articles/pages : par statut, catégorie, date, auteur.
- Recherche intégrée à l’admin.
- Édition rapide (Quick Edit) : changer titre, slug, statut, catégories sans ouvrir l’éditeur.
- Édition groupée (Bulk) : appliquer une action à plusieurs contenus.
✏️ Exercices
- Un contributeur a soumis un article : quel est son statut, et qui peut le faire passer en « Publié » ?
- Pourquoi une photo de 8 Mo uploadée telle quelle pose-t-elle problème, même si WordPress génère des miniatures ?
- Comment limiter le nombre de révisions conservées par contenu ?
✅ Solution
- Statut « En attente de relecture » (pending). Un Éditeur ou un Administrateur (capability
publish_posts/edit_others_posts+publish) peut le publier. - Parce que l’original reste lourd sur le disque et peut être servi tel quel selon le thème/contexte ; cela pèse sur le stockage, les sauvegardes et surtout le temps de chargement. Il faut redimensionner/compresser avant l’upload.
- Dans
wp-config.php:define( 'WP_POST_REVISIONS', 10 );(nombre max), oufalsepour désactiver (déconseillé).
🧠 Quiz de révision
1. Citez trois statuts de contenu.
Brouillon (draft), En attente (pending), Publié (publish), Planifié (future), Privé (private), Corbeille (trash). (Trois au choix.)
2. Où sont physiquement stockés les médias ?
Dans wp-content/uploads/, rangés par année/mois.
3. Que se passe-t-il à l’upload d’une image ?
WordPress génère plusieurs tailles (miniature, moyenne, grande, + tailles de thème) en plus de l’original, et fournit un srcset responsive.
4. À quoi sert le texte alternatif (alt) d’une image ?
À l’accessibilité (lecteurs d’écran) et au SEO ; c’est une métadonnée du média à renseigner.
5. Pourquoi le statut d’un contenu compte-t-il en headless ?
La REST API ne renvoie par défaut que les contenus publiés aux visiteurs non authentifiés ; accéder aux brouillons (preview) exige une authentification.
Chapitre suivant : Taxonomies, menus & navigation.