vendredi 25 septembre 2026

À propos

Contact

Thèmes

Post formats en 2020 : un vestige encore utile du thème classique ?

Hérité de Tumblr, l'attribut post format traîne dans beaucoup de vieux thèmes. Voici ce qu'il change réellement dans la hiérarchie de templates, sans détour par les blocs.

Par Clément Hadrot • 27 février 2020 • 5 min de lecture • Aucun commentaire
Post formats en 2020 : un vestige encore utile du thème classique ?

J’ai repris récemment la maintenance d’un thème conçu en 2013 pour un magazine culturel, où chaque article portait un format différent selon la rubrique : citation pour les portraits, galerie pour les comptes rendus d’exposition, lien pour la revue de presse. Le client m’a demandé si ce mécanisme, qu’il voyait comme une antiquité, valait encore la peine d’être conservé ou s’il fallait tout migrer vers une solution à base de champs personnalisés.

La question mérite qu’on s’y arrête, parce que les post formats sont souvent mal compris : on les confond avec des types de contenu, alors qu’ils ne sont qu’un attribut de présentation appliqué à un article standard. Comprendre ce qu’ils changent vraiment dans le thème classique permet de décider s’il faut les garder, les simplifier ou les remplacer.

Ce qu’est réellement un post format

Un post format est une métadonnée attachée à un article via une taxonomie interne, post_format, invisible dans l’interface de gestion des taxonomies classiques. WordPress reconnaît neuf formats : aside, gallery, link, image, quote, status, video, audio et chat. Aucun thème ne peut en inventer un dixième ; on ne peut que choisir parmi cette liste fermée, contrairement aux catégories ou aux étiquettes.

Sans déclaration explicite dans le thème, ces formats n’ont strictement aucun effet visuel. Il faut appeler add_theme_support('post-formats', array(...)) dans functions.php pour que la case à cocher apparaisse dans l’écran d’édition et que le thème puisse en tirer parti.

add_theme_support( 'post-formats', array(
    'aside',
    'gallery',
    'quote',
    'link',
) );
L'essentiel à retenir : Neuf formats reconnus par le cœur, pas un de plus ; Le thème doit déclarer add_theme_support('post-formats') explicitement ; La hiérarchie retombe sur single.php si le fichier dédié manque

L’effet sur la hiérarchie de templates

C’est le point le plus mal compris : le post format modifie la hiérarchie de templates de la même façon qu’un type de publication personnalisé, mais avec un préfixe dédié. Pour un article au format quote, WordPress cherche dans l’ordre single-post-quote.php, ensuite le content-quote.php si le thème utilise get_template_part() avec le second paramètre, avant de retomber sur single.php. Cette bascule ne concerne que l’affichage d’un article seul et la boucle de la page d’accueil, jamais les pages statiques.

Dans la pratique, très peu de thèmes créent un fichier single-post-{format}.php distinct. La convention la plus répandue consiste plutôt à tester le format à l’intérieur d’un seul template, via la fonction get_post_format(), et à ajuster le balisage en conséquence.

<?php
$format = get_post_format();
if ( $format === 'quote' ) {
    echo '<blockquote>' . get_the_content() . '</blockquote>';
} else {
    the_content();
}

has_post_format() : le test le plus courant

Plutôt que de comparer une chaîne, la fonction has_post_format() est la manière recommandée de tester le format courant dans la boucle. Elle accepte un format unique ou un tableau, ce qui simplifie le regroupement de plusieurs formats sous un même traitement visuel, par exemple image et gallery traités de façon identique dans une grille.

  • has_post_format( 'video' ) renvoie vrai uniquement si l’article courant porte ce format précis.
  • has_post_format( array( 'image', 'gallery' ) ) teste plusieurs formats en une seule condition.
  • Sans argument, la fonction teste le format standard, celui par défaut de tout article qui n’a reçu aucune attribution.

Ce que les formats ne remplacent pas

Un piège classique consiste à vouloir stocker des données structurées dans le format lui-même, par exemple une URL pour le format link. Le cœur de WordPress ne fournit aucun champ dédié à cet usage : c’est au thème d’ajouter des champs personnalisés ou d’aller chercher la première URL présente dans le contenu, souvent via une expression régulière ou wp_extract_urls(). Le format ne fait qu’orienter l’affichage, il ne stocke rien de plus que son propre nom.

Faut-il encore les utiliser en 2020 ?

Sur le thème du magazine culturel, j’ai tranché pour la conservation : les neuf formats couvraient bien les usages éditoriaux existants, et remplacer le mécanisme par des champs personnalisés aurait exigé de réécrire l’écran d’édition sans bénéfice réel côté lecteur. Le seul vrai défaut que j’ai corrigé concernait l’absence de filtre par format dans le thème enfant, ajouté via un lien construit avec get_post_format_link().

Je ne recommande jamais d’introduire les post formats sur un thème neuf en 2020 : ils restent pertinents en maintenance, rarement comme choix de conception pour un projet qui démarre.

En résumé

Les post formats ne créent aucun contenu nouveau : ils étiquettent un article parmi neuf catégories fixes et modifient la hiérarchie de templates ainsi que les fonctions de test disponibles dans la boucle. Un thème classique qui les exploite bien peut continuer à s’appuyer dessus sans complexe, tant qu’on ne cherche pas à leur faire porter plus qu’ils ne peuvent : un simple aiguillage d’affichage, rien d’autre.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi