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

Blocs Gutenberg

register_block_style ajoute une variante visuelle à un bloc du cœur

Dupliquer le rendu d'un bloc natif pour lui donner une apparence différente revient à réinventer la roue. Une fonction native ajoute simplement une classe CSS alternative, sans toucher au bloc d'origine.

Par WordPress Développement • 16 septembre 2022 • 4 min de lecture • Aucun commentaire
register_block_style ajoute une variante visuelle à un bloc du cœur

register_block_style( 'core/quote', [ 'name' => 'encadre', 'label' => 'Encadré' ] ); : cette seule fonction, appelée depuis un hook init, suffit à ajouter une variante visuelle « Encadré » au bloc citation natif, visible directement dans le panneau Styles de l’inspecteur, sans jamais dupliquer le rendu du bloc core/quote ni réécrire son fichier save.js.

Ce guide détaille comment fonctionne register_block_style(), la différence essentielle avec les variations de blocs, et comment fournir le CSS correspondant proprement, sans surcharger le style global du thème.

Ce que fait exactement register_block_style

La fonction ajoute une entrée dans la liste des styles disponibles pour un bloc donné. Une fois enregistrée, cette entrée apparaît dans le panneau « Styles » de l’inspecteur, aux côtés des styles natifs déjà proposés par WordPress pour ce bloc :

add_action( 'init', function () {
    register_block_style(
        'core/quote',
        [
            'name'  => 'encadre',
            'label' => 'Encadré',
        ]
    );
} );

Sélectionner ce style dans l’inspecteur ajoute simplement la classe is-style-encadre au bloc, sans toucher aux attributs existants ni à la structure HTML générée. C’est cette classe qu’il reste à habiller avec du CSS pour obtenir l’effet visuel voulu.

Fournir le CSS associé

L'essentiel à retenir : Ajoute une classe CSS alternative sans dupliquer le rendu du bloc ; Apparaît automatiquement dans le panneau Styles de l'inspecteur ; Peut être retirée pour un bloc précis avec unregister_block_style

Le style visuel proprement dit se déclare dans une feuille de style enregistrée séparément, ciblant la classe générée automatiquement :

.wp-block-quote.is-style-encadre {
    border: 2px solid #1e1e1e;
    border-radius: 8px;
    padding: 24px;
    background-color: #f6f6f6;
}

Cette feuille de style doit être chargée à la fois côté éditeur et côté front, via enqueue_block_editor_assets et wp_enqueue_scripts respectivement, ou plus simplement via la clé style_handle acceptée en troisième paramètre de register_block_style() depuis WordPress 5.9, qui prend en charge ce double chargement automatiquement.

wp_register_style( 'style-quote-encadre', get_theme_file_uri( 'css/quote-encadre.css' ), [], '1.0' );

register_block_style(
    'core/quote',
    [
        'name'         => 'encadre',
        'label'        => 'Encadré',
        'style_handle' => 'style-quote-encadre',
    ]
);

Différence essentielle avec les variations de blocs

  • Un style de bloc (register_block_style) ajoute uniquement une classe CSS alternative : il ne modifie ni les attributs par défaut, ni les valeurs pré-remplies du bloc.
  • Une variation de bloc (registerBlockVariation, côté JavaScript) peut prédéfinir des attributs différents, voire une icône et un titre distincts dans l’inserteur, pour un même bloc sous-jacent.
  • Un style convient donc à un simple habillage visuel, une variation convient à un préréglage plus complet incluant des valeurs par défaut différentes.

Retirer un style existant du cœur

À l’inverse, unregister_block_style() permet de retirer un style natif jugé non pertinent pour l’identité visuelle d’un site, par exemple le style « Épinglé » du bloc citation :

add_action( 'init', function () {
    unregister_block_style( 'core/quote', 'plain' );
} );

Cette fonction doit s’exécuter après l’enregistrement du bloc concerné, généralement via le même hook init avec une priorité légèrement supérieure à celle utilisée par le cœur de WordPress.

Cas d’usage fréquents pour une agence

  • Ajouter un style « Carte » au bloc core/group, avec ombre portée et coins arrondis, cohérent avec l’identité visuelle du client.
  • Ajouter un style « Bouton fantôme » au bloc core/button, avec fond transparent et bordure, sans dupliquer tout le bloc bouton natif.
  • Retirer les styles natifs qui ne correspondent à aucune convention graphique validée par le client, pour éviter qu’un rédacteur ne les sélectionne par erreur.

Sur nos gabarits de thème, on documente systématiquement, dans un fichier dédié, la liste des styles de blocs ajoutés et retirés : cette liste sert ensuite de référence directe pour la charte graphique transmise au client.

En résumé

register_block_style() reste l’un des moyens les plus économes pour enrichir visuellement les blocs natifs de WordPress, sans jamais dupliquer leur code ni complexifier leur maintenance lors des futures mises à jour du cœur. Sa documentation complète, avec l’ensemble des paramètres acceptés, reste disponible sur developer.wordpress.org.

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