Neuf agences d’assurance indépendantes, chacune avec son propre thème bloc et sa propre identité visuelle, avaient pourtant toutes besoin du même gabarit de simulation de contrat, avec la même structure de formulaire et la même logique d’affichage du résultat. Dupliquer ce template dans le code de chaque thème condamnait la moindre évolution à devoir être répétée neuf fois, avec un risque de divergence à chaque intervention.
Ce tutoriel construit, étape par étape, une extension mutualisée qui enregistre ce gabarit de simulation une seule fois, réutilisable par n’importe lequel des neuf thèmes sans jamais copier son code source.
Étape 1 : créer l’extension mutualisée
L’extension, nommée simulation-partagee, contient un dossier templates/ avec un unique fichier simulation-contrat.html, écrit une seule fois avec la structure de blocs attendue pour le formulaire de simulation.
simulation-partagee/
├── simulation-partagee.php
└── templates/
└── simulation-contrat.html
Étape 2 : enregistrer le template depuis l’extension
La fonction register_block_template(), disponible depuis WordPress 6.7, permet précisément d’enregistrer un template depuis le code d’une extension, indépendamment du thème actif, ce qui correspond exactement au besoin ici.

add_action( 'init', function() {
if ( ! function_exists( 'register_block_template' ) ) {
return;
}
register_block_template( 'simulation-partagee//simulation-contrat', array(
'title' => 'Simulation de contrat',
'description' => 'Gabarit mutualisé de simulation entre agences',
'content' => file_get_contents(
plugin_dir_path( __FILE__ ) . 'templates/simulation-contrat.html'
),
) );
} );
Étape 3 : associer le template à une page dans chaque agence
Depuis l’écran d’édition d’une page, chaque agence sélectionne le template « Simulation de contrat » dans la liste des modèles disponibles, exactement comme s’il provenait de son propre thème. Aucune modification du thème local n’est nécessaire pour que ce template apparaisse dans la liste des choix.
- Installer l’extension
simulation-partageesur le site de l’agence concernée. - Créer ou éditer la page de simulation depuis l’administration habituelle.
- Sélectionner le template mutualisé dans le panneau des réglages de page, section modèle.
- Vérifier que les couleurs et polices de l’agence s’appliquent correctement, puisque le template hérite des styles globaux du thème actif, pas de ceux de l’extension.
Ce que cette approche change concrètement
- Une correction du formulaire de simulation, publiée dans une nouvelle version de l’extension, se propage aux neuf agences après une simple mise à jour.
- Chaque agence conserve son thème propre, sa propre identité visuelle et sa propre gestion de contenu éditorial, sans dépendance excessive envers l’extension mutualisée.
- Le code du formulaire de simulation vit à un seul endroit, versionné indépendamment du cycle de vie de chaque thème d’agence.
Le point de vigilance à ne pas négliger
Le template mutualisé doit rester suffisamment générique pour s’adapter à des thèmes différents, sans supposer la présence de couleurs ou de blocs spécifiques à un seul thème d’agence. Toute personnalisation trop poussée dans le template lui-même réintroduirait la divergence que cette mutualisation cherche justement à éviter.
Mutualiser un gabarit ne veut pas dire l’uniformiser jusqu’à l’identité visuelle : cela veut dire séparer clairement ce qui est structurel de ce qui appartient à chaque agence.
Ce qui reste distinct
Les template parts propres à chaque agence, comme l’en-tête ou le pied de page avec ses coordonnées locales, ne relèvent pas de cette mutualisation : ils restent gérés individuellement par chaque thème, sujet traité séparément de ce tutoriel centré sur le seul gabarit de simulation.
En résumé
Enregistrer un template de simulation depuis une extension mutualisée, plutôt que de le dupliquer dans neuf thèmes distincts, concentre la maintenance en un seul endroit tout en laissant chaque agence libre de son identité visuelle propre. La fonction register_block_template() rend cette mutualisation possible sans complexité excessive côté développement.