# 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.

- Auteur : WordPress Développement
- Publié le : 2024-04-28
- Mis à jour le : 2024-04-28
- Catégorie : Extensions
- URL : https://www.wpmoderne.fr/extensions/font-library-wordpress-65-extension/

## L’essentiel

- 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

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.
