Imposer qu’un type de contenu personnalisé commence toujours par un même squelette, une image suivie d’un titre puis d’une description par exemple, évite à chaque rédacteur de reconstruire cette structure de zéro. C’est le rôle d’un modèle de bloc : une liste ordonnée de blocs, chacun pouvant recevoir ses propres attributs par défaut, déclarée en PHP et appliquée automatiquement à la création d’un article de ce type ou insérée dans une zone InnerBlocks.
Fonctionnement dans WordPress
Côté type de contenu personnalisé, un modèle se déclare avec l’argument template de register_post_type(), sous forme de tableau de tableaux [ 'nom/du-bloc', { attributs } ]. Le paramètre associé template_lock détermine si ce squelette peut être modifié, réorganisé ou seulement partiellement verrouillé une fois le contenu créé. Ce même mécanisme de modèle s’applique aussi, à plus petite échelle, à un composant InnerBlocks à l’intérieur d’un bloc personnalisé.
Exemple
register_post_type( 'temoignage', [
'template' => [
[ 'core/image' ],
[ 'core/heading', [ 'level' => 3 ] ],
[ 'core/paragraph' ],
],
'template_lock' => 'all',
] );
Bon à savoir
- À ne pas confondre avec un modèle de page (au sens gabarit PHP hérité, sélectionnable dans l’attribut « Modèle » d’une page), ni avec un gabarit de l’éditeur de site, qui concerne la mise en page globale plutôt que le contenu initial d’un article.
- Un modèle de bloc n’empêche pas, sauf verrouillage explicite, un rédacteur de tout supprimer et de repartir de zéro : il ne s’agit que d’un point de départ.