Une liste que WordPress complète sans le dire
Depuis theme.json version 2, WordPress ajoute automatiquement à la liste de tailles de police déclarée par un thème dans settings.typography.fontSizes une série de tailles par défaut fournies par le cœur du logiciel, à moins que le réglage settings.typography.defaultFontSizes ne soit explicitement mis à false. Cette fusion silencieuse est facile à manquer en relisant uniquement son propre fichier theme.json : la liste des tailles proposée dans l’éditeur ne correspond alors pas à ce que le thème a réellement déclaré.
Le réglage se limite à cette seule action : ajouter ou non les tailles natives. Il ne touche pas à la mise en forme des tailles déjà déclarées par le thème, ni à leur ordre d’affichage, ni au fait qu’une taille personnalisée reste saisissable si customFontSize est par ailleurs activé.
Une échelle censée être fermée, ouverte malgré elle

Un thème avait été conçu autour d’une échelle typographique volontairement restreinte à quatre tailles nommées, chacune choisie pour correspondre à un usage précis dans la maquette : texte courant, légende, sous-titre, titre de section. Le fichier theme.json déclarait bien ces quatre entrées, mais sans préciser defaultFontSizes. Résultat, la liste déroulante affichée dans le panneau du bloc Paragraphe comptait onze entrées au total, les quatre du thème mêlées aux sept par défaut de WordPress, dans un ordre qui ne suivait ni la logique du thème ni un tri numérique évident.
- Les tailles ajoutées par défaut portent des identifiants génériques comme
small,medium,large, susceptibles d’entrer en collision avec un identifiant du thème s’il réutilise le même slug. - Le mélange reste visible même si le thème déclare ses propres tailles avec des noms très différents : la fusion se fait par ajout, pas par remplacement conditionnel.
- Un contenu déjà publié avec une taille par défaut, une fois
defaultFontSizespassé àfalse, continue de s’afficher correctement puisque la valeur CSS reste enregistrée dans le contenu ; seule la liste proposée pour les prochains choix change.
Fermer l’échelle dans le fichier de thème
La correction tient en une ligne ajoutée au fichier theme.json :
{
"version": 2,
"settings": {
"typography": {
"defaultFontSizes": false,
"fontSizes": [
{ "slug": "texte", "size": "1rem", "name": "Texte courant" },
{ "slug": "legende", "size": "0.85rem", "name": "Légende" },
{ "slug": "sous-titre", "size": "1.25rem", "name": "Sous-titre" },
{ "slug": "titre-section", "size": "2rem", "name": "Titre de section" }
]
}
}
}
Après ce changement, la liste déroulante de l’éditeur ne présente plus que les quatre entrées voulues, dans l’ordre de déclaration du tableau. Aucune migration de contenu n’a été nécessaire côté rendu, puisque les articles déjà publiés référençaient soit une taille du thème, soit une valeur numérique directement enregistrée dans le style du bloc.
Une échelle typographique qui n’est fermée qu’à moitié n’est, du point de vue de qui édite, pas fermée du tout.
Un contrôle a posteriori sur le contenu existant a par ailleurs confirmé qu’aucun article ne s’appuyait sur les tailles par défaut nouvellement écartées, ce qui a évité tout ajustement visuel supplémentaire.
Ne pas fermer une échelle encore incomplète
Ce réglage suppose que le thème ait déjà pensé toutes les tailles dont la rédaction aura besoin. Le désactiver trop tôt, avant d’avoir couvert des cas courants comme une légende d’image ou une citation mise en avant, pousse qui publie à saisir une valeur personnalisée au clavier plutôt qu’à choisir dans une liste, ce qui recrée exactement le désordre que l’échelle devait éviter. Il est également inutile sur un thème très générique destiné à être réutilisé tel quel par des personnes qui ne maîtrisent pas la charte d’origine, où garder les tailles par défaut peut au contraire servir de filet.
Conclusion
settings.typography.defaultFontSizes ne fait rien de spectaculaire : il empêche simplement WordPress d’ajouter sa propre liste à celle, déjà pensée, d’un thème. C’est justement parce que son effet est discret qu’il est facile à oublier, et que l’échelle typographique d’un thème peut se retrouver polluée sans qu’aucune ligne du fichier ne le signale explicitement.