# register_block_pattern_category, ou comment ranger ses premiers patterns

> Avant même l'éditeur de site, une poignée de patterns de blocs suffit à saturer le panneau d'insertion. Une fonction permet déjà de les classer proprement.

- Auteur : WordPress Développement
- Publié le : 2020-09-14
- Mis à jour le : 2020-09-14
- Catégorie : Éditeur de site (FSE)
- URL : https://www.wpmoderne.fr/fse/register-block-pattern-category-bibliotheque-naissante/

## L’essentiel

- Créer une catégorie dédiée pour ses patterns maison
- Éviter le fourre-tout de la catégorie « Non classé »
- Préparer la bibliothèque avant l'arrivée du Site Editor

`register_block_pattern_category( 'agence-locale', array( 'label' => __( 'Agence locale', 'theme' ) ) );` — cette seule ligne, ajoutée dans le fichier `functions.php` d'un thème classique, change la façon dont un client perçoit l'éditeur de blocs. Depuis l'arrivée des patterns dans WordPress 5.5, chaque agence qui a commencé à enregistrer ses propres compositions se retrouve vite avec cinq, dix, quinze patterns qui s'entassent dans la catégorie générique proposée par défaut.

Le problème n'est pas nouveau, mais il devient visible dès que le nombre de patterns dépasse la poignée initiale. Sans catégorisation, un rédacteur qui cherche un pattern d'appel à l'action se retrouve à faire défiler une liste sans logique apparente, mélangeant en-têtes, grilles d'images et blocs de texte. Or la fonction existe déjà, elle est stable, et son usage ne demande ni le Site Editor ni theme.json : un simple thème classique suffit.

## Ce que fait réellement register_block_pattern_category

Cette fonction ne fait qu'une chose : déclarer une étiquette et une clé auprès du registre interne des catégories de patterns. Elle ne crée aucun contenu, elle ne modifie aucun bloc existant. Son rôle se limite à préparer un rangement dans lequel des patterns viendront ensuite se ranger via l'argument `categories` de `register_block_pattern()`.

- La catégorie doit être enregistrée avant les patterns qui l'utilisent, sur le hook `init`.
- La clé (le premier argument) doit rester stable dans le temps : elle sert d'identifiant interne, pas seulement d'étiquette affichée.
- Un pattern peut appartenir à plusieurs catégories à la fois, ce qui permet un classement croisé (par exemple « en-tête » et « restaurant »).

## Organiser une bibliothèque naissante

Sur un projet récent pour une association de quartier, la bibliothèque de patterns a démarré avec cinq compositions : un bandeau d'accueil, une grille d'événements, un bloc de dons, une citation mise en avant et un pied de page enrichi. Sans catégorie dédiée, ces cinq patterns se retrouvaient noyés parmi les patterns fournis par défaut par WordPress et par le thème parent.

```
function theme_enregistrer_categories_patterns() {
    register_block_pattern_category(
        'association-quartier',
        array( 'label' => __( 'Association de quartier', 'theme' ) )
    );
}
add_action( 'init', 'theme_enregistrer_categories_patterns' );

function theme_enregistrer_pattern_bandeau() {
    register_block_pattern(
        'theme/bandeau-accueil',
        array(
            'title'      => __( 'Bandeau d’accueil', 'theme' ),
            'categories' => array( 'association-quartier' ),
            'content'    => '<!-- wp:group {"align":"full"} --><div class="wp-block-group alignfull"></div><!-- /wp:group -->',
        )
    );
}
add_action( 'init', 'theme_enregistrer_pattern_bandeau' );
```

> L'essentiel à retenir : Créer une catégorie dédiée pour ses patterns maison ; Éviter le fourre-tout de la catégorie « Non classé » ; Préparer la bibliothèque avant l'arrivée du Site Editor

## Anticiper sans dépendre du Site Editor

Il est tentant de se dire qu'un rangement de patterns ne vaut la peine que lorsque l'éditeur de site sera disponible. C'est une erreur de calendrier : le panneau d'insertion de patterns fonctionne déjà pleinement dans l'éditeur de contenu classique, sur n'importe quel thème, y compris ceux qui n'ont pas la moindre trace de theme.json. Attendre revient simplement à laisser grossir un désordre qu'il faudra ranger plus tard, avec davantage de patterns à reclasser.

Cette organisation précoce a un autre avantage : elle force à réfléchir à une nomenclature cohérente pour les clés de catégorie, ce qui évite les doublons quand plusieurs thèmes ou plusieurs extensions déclarent des catégories similaires sur un même site.

### Les pièges à éviter dès maintenant

- Réutiliser une clé déjà prise par une catégorie native (« text », « gallery », etc.) : le dernier appel écrase silencieusement le précédent.
- Oublier le contexte de traduction sur le label, ce qui complique les sites multilingues à venir.
- Créer une catégorie par client sans convention de préfixe, au risque de collisions sur des projets mutualisés.

## Un chantier à faible coût, à fort effet

Sur ce projet associatif, la mise en place de la catégorie et du rangement des cinq patterns existants a pris moins d'une heure. Le gain, lui, se mesure à chaque nouvelle page créée par l'équipe éditoriale : plus besoin de fouiller, le pattern recherché apparaît dans un groupe restreint et identifiable.

> Une catégorie de patterns bien nommée, c'est un panneau d'insertion qui reste lisible même quand la bibliothèque triple de volume. Ce n'est pas un luxe réservé aux gros projets, c'est une habitude à prendre dès le premier pattern maison.

La documentation officielle de [register_block_pattern_category()](https://developer.wordpress.org/reference/functions/register_block_pattern_category/) reste la référence à consulter pour les arguments disponibles, qui n'ont d'ailleurs presque pas bougé depuis leur introduction.

## En résumé

Classer ses patterns par catégorie ne demande ni extension supplémentaire ni fonctionnalité expérimentale : la fonction est stable, documentée, et son coût de mise en œuvre est dérisoire comparé au temps gagné par les rédacteurs. Sur un projet qui commence tout juste à accumuler des compositions maison, c'est l'un des tout premiers réflexes à prendre, bien avant de se soucier d'un futur éditeur de site.
