Une sidebar qui affiche un widget d’abonnement à une lettre d’information, un widget de derniers articles et un widget de recherche, tous configurés depuis des années via l’écran classique « Apparence > Widgets », ne se migre pas d’un simple clic. Sur un projet où seule cette zone latérale devait basculer vers l’écran de widgets en blocs, encore expérimental à ce stade, il fallait un moyen de continuer à afficher ce qui existait déjà sans tout reconstruire dans la foulée.
C’est exactement le rôle que joue le bloc de secours prévu pour cet usage : il encapsule un widget classique existant, avec ses réglages d’origine, et l’affiche tel quel à l’intérieur d’une zone de widgets désormais pilotée par blocs. Rien n’est perdu, rien n’est réécrit, et l’équipe peut avancer widget par widget plutôt que de tout migrer d’un coup.
Le contexte du projet
La sidebar comptait quatre widgets, dont un widget personnalisé fourni par une extension tierce de recherche avancée, sans équivalent en bloc natif. Migrer l’intégralité de la zone d’un coup impliquait donc de renoncer temporairement à cette fonctionnalité, ce qui n’était pas acceptable pour l’équipe éditoriale qui s’en servait quotidiennement.
- Widget « Recherche avancée » de l’extension tierce, sans équivalent bloc disponible.
- Widget « Derniers articles », remplaçable par le bloc natif équivalent.
- Widget « Texte » contenant un court message d’abonnement, également remplaçable directement.
Le principe du bloc de secours
Une fois l’écran de widgets en blocs activé sur ce thème, chaque widget classique existant apparaît automatiquement encapsulé dans ce bloc de secours, sans intervention manuelle. Le comportement d’affichage reste identique à celui de l’ancien écran : les réglages du widget restent modifiables via le même formulaire qu’auparavant, simplement affiché à l’intérieur d’un panneau de blocs.
<!-- wp:legacy-widget {"idBase":"recherche_avancee","instance":{"encoded":"…"}} /-->
<!-- wp:latest-posts {"postsToShow":5} /-->
<!-- wp:paragraph -->
<p>Abonnez-vous à notre lettre d'information.</p>
<!-- /wp:paragraph -->
Cette juxtaposition dans un même fichier illustre bien la logique de transition : le premier widget reste encapsulé tel quel, tandis que les deux suivants ont déjà été convertis en blocs natifs équivalents, sans perte visuelle pour le visiteur du site.

Une migration en trois passes
Première passe : constater sans rien changer
L’activation de l’écran de widgets en blocs n’a, dans un premier temps, rien modifié à l’affichage : chaque widget classique s’est retrouvé automatiquement encapsulé, confirmant que la bascule technique ne casse rien par elle-même.
Deuxième passe : remplacer ce qui a un équivalent natif
Les widgets « Derniers articles » et « Texte » ont été supprimés puis recréés directement avec les blocs natifs correspondants, avec un contrôle visuel immédiat pour vérifier l’identité du rendu.
Troisième passe : laisser le pont en place le temps qu’il faut
Le widget de recherche avancée est resté encapsulé dans le bloc de secours plusieurs mois, en attendant qu’un bloc natif ou une mise à jour de l’extension propose une alternative satisfaisante.
Ce qu’il ne faut pas faire
- Ne jamais désactiver l’extension tierce avant d’avoir vérifié la disponibilité d’une alternative en bloc.
- Ne pas confondre ce bloc de secours avec une solution définitive : il reste un pont, pas une destination.
- Éviter de dupliquer une zone de widgets entière juste pour tester, au risque de générer deux sources de vérité.
Le pont le plus utile est souvent celui qu’on retire discrètement une fois la traversée terminée, sans que personne n’ait eu à s’arrêter en chemin.
En résumé
Le bloc de secours pour widgets classiques n’a rien d’un artifice bancal : c’est un mécanisme pensé précisément pour permettre une migration progressive, zone par zone, widget par widget, sans imposer de rupture brutale à l’équipe éditoriale ni de renoncement fonctionnel prématuré. Sur cette sidebar, il aura tenu son rôle de pont pendant plusieurs mois, avant de disparaître naturellement une fois le dernier widget converti.