# Migrer les widgets classiques d’une sidebar en template part

> Conserver une colonne latérale historique tout en basculant vers l'éditeur de site expérimental : conversion widget par widget, sans perdre le contenu existant.

- Auteur : Clément Hadrot
- Publié le : 2021-01-12
- Mis à jour le : 2021-01-12
- Catégorie : FSE
- URL : https://wpmoderne.dev.wordpress-developpement.fr/fse/migrer-widgets-classiques-sidebar-template-part/

## L’essentiel

- Un widget converti à la fois, jamais en bloc
- Vérification visuelle après chaque conversion
- Sauvegarde de la configuration des widgets avant de commencer

Le client tenait à sa colonne latérale : un widget de recherche, un nuage de mots-clés, une liste des derniers articles, un bloc de réseaux sociaux, une newsletter et un widget de catégories, empilés depuis des années dans la même sidebar. Basculer ce thème vers les gabarits expérimentaux du plugin Gutenberg supposait de recréer cette colonne, mais sans widgets classiques puisque le nouveau modèle de template repose entièrement sur des blocs.

Plutôt que de tout reconstruire d'un bloc, j'ai choisi une migration widget par widget, en vérifiant à chaque étape que le rendu restait fidèle à l'original. Voici comment s'est déroulée cette conversion, qui a pris plus de temps que prévu mais sans accroc majeur.

## Étape 1 : cartographier l'existant avant de toucher à quoi que ce soit

Première étape, la plus négligée en général : lister précisément chaque widget actif, ses réglages exacts, et une capture d'écran du rendu final. Sur ce projet, la sidebar comptait six widgets, dont deux widgets texte personnalisés contenant du HTML fait main que personne n'avait documenté depuis leur création.

Cette cartographie a servi de référence tout au long de la migration, en particulier pour vérifier que les marges et espacements du nouveau rendu correspondaient bien à l'ancien, un détail que les clients remarquent toujours en premier.

## Étape 2 : convertir le widget de recherche

Le widget de recherche classique repose sur la fonction PHP `get_search_form()`. Son équivalent en bloc est `core/search`, qui propose en prime un choix visuel entre bouton avec icône, bouton texte ou pas de bouton du tout. J'ai inséré ce bloc en tête de la future template part, en configurant l'attribut `buttonText` pour respecter le libellé français utilisé jusque-là.

> L'essentiel à retenir : Un widget converti à la fois, jamais en bloc ; Vérification visuelle après chaque conversion ; Sauvegarde de la configuration des widgets avant de commencer

## Étape 3 : reconstruire la liste des derniers articles

Le widget « Articles récents » du cœur de WordPress trouve son équivalent dans le bloc `core/latest-posts`, avec des réglages très proches : nombre d'articles, affichage de la date, affichage de l'extrait. La configuration a été reproduite à l'identique en quelques minutes, sans perte fonctionnelle perceptible.

## Étape 4 : traiter les widgets texte personnalisés

Les deux widgets texte contenant du HTML fait main ont demandé plus d'attention. J'ai copié leur contenu dans un bloc HTML personnalisé (`core/html`) en première intention, le temps de vérifier que rien ne cassait visuellement, avant de les reconvertir progressivement en blocs natifs (Groupe, Image, Bouton) pour rester cohérent avec la philosophie de l'éditeur.

- Widget réseaux sociaux : converti en un bloc Groupe contenant des blocs Image liés chacun à une URL externe.
- Widget newsletter : conservé temporairement en bloc HTML, le formulaire dépendant d'un script tiers difficile à reproduire en blocs natifs.

## Étape 5 : assembler la template part et vérifier le rendu final

Une fois chaque widget converti individuellement, j'ai assemblé l'ensemble dans une template part dédiée à la colonne latérale, en respectant l'ordre d'origine. Un contrôle visuel côte à côte avec les captures d'écran de départ a permis de repérer un espacement vertical trop large entre deux blocs, corrigé en ajustant la marge du bloc Groupe englobant.

> Migrer un widget à la fois, plutôt que tout reconstruire globalement, transforme une tâche anxiogène en une série de petites victoires vérifiables.

## En résumé

Cette migration widget par widget a demandé environ une journée complète de travail minutieux, largement compensée par l'absence totale de régression visuelle constatée par le client. La méthode, bien que lente, reste selon moi la plus sûre tant que l'éditeur de site n'a pas encore atteint sa version stable dans le cœur de WordPress.

Un point mérite d'être ajouté pour qui envisage la même démarche : conserver l'ancienne configuration des widgets désactivés, plutôt que de la supprimer, pendant au moins plusieurs semaines après la mise en ligne. Cette précaution a permis, sur un autre projet similaire, de retrouver rapidement un réglage oublié lors de la conversion, sans avoir à reconstruire le widget d'origine de mémoire.

Je recommande cette approche à toute personne qui doit conserver une sidebar historique riche en widgets personnalisés lors d'une transition vers ces nouveaux gabarits expérimentaux.
