Le WordPress d'aujourd'hui, décodé pour les développeurs

Extensions

La Font Library de WordPress 6.5 : y intégrer les polices de son extension

Plutôt que d'enqueue ses propres fichiers de police, une extension peut désormais les proposer directement dans le registre central introduit par WordPress 6.5. Voici comment s'y raccorder.

Par WordPress Développement • 28 avril 2024 • 4 min de lecture • Aucun commentaire
La Font Library de WordPress 6.5 : y intégrer les polices de son extension

Avril 2024 : WordPress 6.5 ajoute la Font Library, un registre central de polices consultable et installable directement depuis l’éditeur de site, sans quitter l’interface d’administration. Pour un auteur d’extension qui fournissait jusque-là ses propres polices via un enregistrement manuel de fichiers .woff2 et un appel à wp_enqueue_style(), cette nouveauté change la façon de distribuer ces ressources : plutôt que d’imposer un chargement systématique, l’extension propose désormais une collection que l’utilisateur choisit d’installer ou non.

Étape 1 : comprendre ce que gère la Font Library

La Font Library stocke les polices installées sous forme de deux types de contenu internes, wp_font_family et wp_font_face, gérés automatiquement par le cœur de WordPress. Une fois une police installée depuis l’interface, elle devient disponible dans les réglages de style de l’éditeur de site, au même titre que les polices fournies par le thème actif, sans distinction visible pour l’utilisateur final.

Étape 2 : déclarer une collection de polices

L'essentiel à retenir : wp_register_font_collection() déclare une collection consultable depuis l'éditeur de site ; Les polices restent gérées et installées par l'utilisateur, pas imposées par l'extension ; Un simple fichier JSON décrit chaque famille et ses graisses

Le point d’entrée pour une extension est la fonction wp_register_font_collection(), appelée sur le hook init, qui reçoit un identifiant de collection et un tableau de configuration :

add_action( 'init', function() {
    wp_register_font_collection(
        'mon-extension-polices',
        array(
            'name'          => 'Polices maison',
            'description'   => 'Polices fournies par Mon Extension pour une lecture confortable.',
            'font_families' => MON_EXTENSION_PATH . 'polices/collection.json',
        )
    );
} );

Le paramètre font_families peut pointer soit vers un tableau PHP directement, soit vers le chemin d’un fichier JSON, ce qui garde la définition des polices séparée du code d’enregistrement lui-même.

Étape 3 : décrire chaque famille dans le fichier JSON

Le fichier de collection suit un format structuré, avec une entrée par famille de polices et, pour chacune, la liste de ses graisses et styles disponibles :

[
  {
    "font_family_settings": {
      "name": "Lecture Confort",
      "slug": "lecture-confort",
      "fontFace": [
        {
          "fontFamily": "Lecture Confort",
          "fontWeight": "400",
          "fontStyle": "normal",
          "src": [ "file:./lecture-confort-regular.woff2" ]
        },
        {
          "fontFamily": "Lecture Confort",
          "fontWeight": "700",
          "fontStyle": "normal",
          "src": [ "file:./lecture-confort-bold.woff2" ]
        }
      ]
    },
    "categories": [ "sans-serif" ]
  }
]

Le préfixe file: dans le champ src indique à WordPress que le fichier de police est fourni localement par l’extension, et non hébergé sur un service externe : WordPress copie alors le fichier dans la médiathèque au moment de l’installation choisie par l’utilisateur.

Étape 4 : laisser l’utilisateur décider de l’installation

Contrairement à un chargement systématique via wp_enqueue_style() à l’activation de l’extension, la collection déclarée n’installe rien automatiquement : elle apparaît simplement dans l’onglet « Gérer les polices » de l’éditeur de style, où l’utilisateur choisit lui-même les familles à installer. Ce changement de posture évite qu’une extension n’alourdisse le chargement de chaque page avec des polices que le thème actif n’utilise pas nécessairement.

Étape 5 : vérifier la compatibilité du thème actif

La Font Library ne fonctionne pleinement qu’avec un thème compatible avec l’éditeur de site et disposant d’un fichier theme.json. Sur un thème classique sans support de l’éditeur de site, la fonction wp_register_font_collection() reste sans effet visible : il est donc utile de vérifier la présence de ce support avant de proposer la collection, via wp_theme_has_theme_json(), pour éviter de documenter une fonctionnalité invisible pour une partie des utilisateurs.

Ce que la Font Library ne remplace pas totalement

Pour une police strictement nécessaire au fonctionnement visuel d’un composant fourni par l’extension, indépendamment du thème choisi par l’utilisateur, un enregistrement classique via wp_enqueue_style() reste justifié : la Font Library répond à un besoin éditorial de personnalisation, pas à une dépendance technique stricte d’un composant d’interface.

En résumé

S’intégrer à la Font Library de WordPress 6.5 demande peu de code, un fichier JSON de description et un appel à wp_register_font_collection(), mais implique un changement de posture : l’extension propose une ressource optionnelle plutôt que d’imposer un chargement systématique, ce qui correspond mieux à l’esprit de personnalisation porté par l’éditeur de site.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

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

Voir tous ses articles

Dans la même veine

À lire aussi