# register_widget en 2020 : construire encore un widget classique a-t-il un sens ?

> Les blocs gagnent du terrain, mais une extension distribuée à des centaines de thèmes classiques ne peut pas ignorer register_widget aussi facilement.

- Auteur : Clément Hadrot
- Publié le : 2020-06-05
- Mis à jour le : 2020-06-05
- Catégorie : Extensions
- URL : https://wpmoderne.dev.wordpress-developpement.fr/extensions/register-widget-2020-widget-classique-sens/

## L’essentiel

- Un widget classique reste lisible par tous les thèmes, blocs ou non
- L'éditeur de widgets par blocs de 5.8 n'existe pas encore en juin 2020
- Le vrai critère est le parc de thèmes que l'extension doit couvrir

Une agence maintient une extension d'affichage d'avis clients, distribuée à environ deux cents sites construits avec des dizaines de thèmes différents, dont une bonne moitié encore sur des bases classiques héritées de 2016 ou 2017, sans le moindre bloc Gutenberg dans leurs zones de widgets. La question posée en réunion d'équipe est simple : faut-il encore, en 2020, écrire un nouveau widget avec `register_widget()`, ou est-ce du temps perdu sur une API qu'on annonce mourante depuis l'arrivée de l'éditeur de blocs ?

La réponse ne tient pas à une mode technique, mais au parc réel que l'extension doit servir. Et pour une extension multi-thèmes destinée à durer, ignorer les widgets classiques revient à couper l'accès à une bonne partie de sa base installée.

## Ce que Gutenberg a changé, et ce qu'il n'a pas changé

Depuis WordPress 5.0, l'éditeur de blocs a remplacé l'éditeur de contenu classique, et un widget de type bloc peut désormais être inséré dans un article ou une page comme n'importe quel autre bloc. Mais les zones de widgets de la barre latérale ou du pied de page, elles, continuent d'utiliser l'écran `widgets.php` classique, avec son système de glisser-déposer hérité. Rien dans le cœur de WordPress, à la date de cet article, ne transforme automatiquement ces zones en zones à blocs : ce chantier existe dans les discussions de la feuille de route de Gutenberg, mais aucune version publiée ne l'implémente encore.

Concrètement, un thème classique appelle toujours `dynamic_sidebar()` dans son fichier `sidebar.php`, et cette fonction continue de fonctionner exactement comme avant, en listant les widgets enregistrés via `register_widget()` et en les rendant dans l'ordre choisi par l'administrateur du site.

## Le cas où le widget classique reste justifié

> L'essentiel à retenir : Un widget classique reste lisible par tous les thèmes, blocs ou non ; L'éditeur de widgets par blocs de 5.8 n'existe pas encore en juin 2020 ; Le vrai critère est le parc de thèmes que l'extension doit couvrir

Pour une extension qui vise un public de thèmes variés, souvent installés depuis des années sur des sites de PME ou d'associations, register_widget reste le seul mécanisme garanti de fonctionner partout, sans supposer que le thème a été mis à jour ou reconstruit avec les blocs en tête. Voici un squelette minimal, conforme à l'API :
