Gestion des problèmes potentiels liés à la mise à jour de jQuery dans WordPress 5.6


En août 2020, WordPress 5.5 a cessé d’utiliser le script jQuery Migrate par défaut. Avec la sortie prochaine de WordPress 5.6, la version embarquée de jQuery sera mise à jour de la version 1.12.4-wp à la version 3.5.1.

Il est important de préciser que cette mise à jour de jQuery est aujourd’hui indispensable, car cette ancienne version n’est plus prise en charge par jQuery et la conserver pose des problèmes de sécurité sur le long terme.

Dans cet article, vous trouverez l’ensemble des préconisations pour réduire au maximum les risques lors de la mise à jour de votre site vers WordPress 5.6 et sa nouvelle version de jQuery.

Ainsi, avec la mise à jour majeure WordPress 5.6, qui elle-même met à jour la version de jQuery, certaines extensions ou certains thèmes qui s’appuient sur du code jQuery obsolète risquent de présenter des problèmes, allant de simples avertissement affichés uniquement sur la console du navigateur à des problèmes plus graves pouvant générer des erreurs fatales d’exécution du code JavaScript.

La solution utilisée lors de la sortie de WordPress 5.5

Pour la sortie de WordPress 5.5, l’extension Enable jQuery Migrate Helper a été publiée sur le répertoire officiel des extensions WordPress. Elle permettait de réactiver le script jQuery Migrate et de mettre en évidence les éléments à corriger sur l’interface d’administration de WordPress.

Initialement, cette extension devait être une solution temporaire pour donner aux personnes développant des extensions ou des thèmes un peu plus de temps pour faire les mises à jour au cas où les changements de la version 5.5 les prendraient au dépourvu.

Malheureusement, de nombreuses extensions et thèmes (au moment de la publication de cet article, avant la sortie de WordPress 5.6) présents sur le répertoire officiel WordPress.org sont encore basés sur un code obsolète, sans parler des extensions et thèmes payants proposés sur les places de marché premium.

Cette extension est donc encore massivement utilisée dans l’écosystème.

Anticiper les problèmes de compatibilité jQuery pour WordPress 5.6

Compte tenu de ces éléments, l’extension Enable jQuery Migrate Helper a été mise à jour pour la sortie de WordPress 5.6, afin que votre site puisse continuer à utiliser les anciennes versions de jQuery en cas de besoin.

Nous vous conseillons donc d’installer (ou si vous l’avez déjà, de conserver) l’extension Enable jQuery Migrate Helper sur votre site lors de votre passage à WordPress 5.6.

Cette solution doit cependant être considérée comme étant provisoire, car les anciennes versions de jQuery ne reçoivent plus de mises à jour de sécurité, et qu’elles pourront donc à l’avenir compromettre la sécurité de votre site.

Présentation de l’extension Enable jQuery Migrate Helper

Cette extension propose des fonctionnalités et des outils permettant de passer d’une version de jQuery à une autre, soit par le biais d’une mise à jour du code des extensions ou des thèmes par leurs auteurs, soit en donnant au propriétaire du site le temps de trouver des alternatives.

Remontée des éléments posant problème

L’extension permet de détecter les problèmes rencontrés sur votre site : lorsque vous naviguez sur votre site avec l’extension active, elle identifie les dépréciations relatives à du code jQuery obsolète et vous les affiche, si vous être connecté·e avec votre compte d’administration du site.

Les dépréciations sont des avertissements liés à une utilisation de code obsolète, mais qui sera encore pris en charge pendant une période de transition. Toute fonctionnalité marquée comme étant dépréciée doit être remplacée par du code moderne dès que possible, afin de s’assurer que tout fonctionne correctement sur le long terme.

Ci-dessus, la barre d’administration affichant les avertissements de dépréciation. Cliquez sur l’image pour l’ouvrir en taille originale dans un nouvel onglet.

Le premier emplacement où vous rencontrerez ces avertissements de dépréciations sera la barre d’administration située en haut de page lorsque vous êtes connecté·e en tant qu’administrateur ou administratrice.

Vous y trouverez le nombre de problèmes rencontrés sur la page courante. Les avertissements de dépréciations sur la partie publique du site sont enregistrés et visualisables sur une page dédiée à cela et uniquement visible par les admins. Sur l’interface d’administration, les avertissements sont directement affichés à l’écran, et sont également enregistrés, la configuration choisie au niveau des réglages de l’extension.

Si des dépréciations ont déjà été enregistrées, elles peuvent également afficher dans le menu d’administration un indicateur du nombre d’éléments enregistrés comme le montre la capture d’écran ci-contre.

Ces éléments resteront marqués jusqu’à ce que vous effaciez les enregistrements concernés.

Ci-dessus, un aperçu des journaux de dépréciations, avec des exemples d’extensions contenant du code déprécié. Cliquez sur l’image pour l’afficher en grand dans un nouvel onglet.

La page du journal des dépréciations permet d’avoir dans la console JavaScript une représentation visuelle des avertissements souvent cachés et destinés aux développeurs et développeuses.

Elle contient aussi un lien direct vers le site web de l’extension ou du thème, ou vers le site de la personne qui développe l’extension ou le thème, si aucun autre lien n’est disponible. Ce type d’accès direct aidera, nous l’espérons, les utilisateurs et utilisatrices de WordPress à obtenir des versions mises à jour ou à remonter les problèmes rencontrés aux développeurs et développeuses d’extensions et de thèmes.

Basculer sur l’ancienne version de jQuery

La page de réglages de l’extension, avec les options pour changer les versions de jQuery. Cliquer sur l’image pour l’ouvrir en grand dans un nouvel onglet.

La page des réglages de l’extension permet aux administrateurs et administratrices de sites de choisir entre l’utilisation de l’ancienne version de jQuery (avec un avertissement visible par les admins sur chaque page avec les erreurs remontées), et une option permettant d’activer l’enregistrement des dépréciations générées par les personnes visitant le site (option nommée « journalisation publique »).

La journalisation publique peut entraîner une charge supplémentaire sur votre serveur, car toute personne qui consulte une page présentant des erreurs générera automatiquement une nouvelle entrée dans le journal des erreurs. Cette option n’est a activer que si le support de WordPress ou d’une extension vous le demande

Changement automatique de version de jQuery

Nous sommes conscients que le public cible du logiciel WordPress est largement constitué de personnes n’ayant pas forcément les connaissances techniques permettant de prendre les bonnes décisions.

C’est pourquoi un mécanisme automatisé a été mis en place sur l’extension Enable jQuery Migrate Helper afin de basculer automatiquement sur l’ancienne version de jQuery dans le cas où le site ne serait pas fonctionnel sur la nouvelle version. Un e-mail de notification sera alors envoyé au propriétaire du site pour l’informer de cela.

Envoi de notifications e-mail automatisées

Exemple de notification e-mail envoyée lors de l’utilisation d’une ancienne version de jQuery.

Une fois par semaine, l’extension enverra un e-mail à la personne chargée de l’administration du site pour l’informer de l’état actuel de son site. Cette notification contient des informations sur les problèmes liés à jQuery qui ont été enregistrés au cours de la semaine écoulée.

Nous espérons ainsi que les personnes chargées de l’administration de leur site pourront ainsi prendre en main la résolution des problèmes touchant leur site, notamment en mettant à jour les extensions et thèmes générant des erreurs sur le site.

Dans ces mêmes e-mails, nous encourageons également la suppression de l’extension jQuery Migrate Helper si aucune dépréciation n’a été enregistrée au cours de la semaine écoulée. Cela permettra aux équipes de WordPress.org d’avoir un aperçu en temps réel des problèmes de compatibilité jQuery, en observant le nombre d’installations actives de l’extension.


Si vous avez des questions ou si vous avez besoin d’aide, n’hésitez pas à vous inscrire sur le forum d’entraide de l’association WordPress Francophone ou à rejoindre le Slack WordPress-Fr.

Cet article est une traduction par @justinahinon de l’article Handling potential jQuery issues in WordPress 5.6 (article en anglais), initialement publié par @clorith sur le blog de développement du cœur WordPress. Relu et adapté par @audrasjb et @fxbenard.

4 réponses à “Gestion des problèmes potentiels liés à la mise à jour de jQuery dans WordPress 5.6”

  1. Parfait !
    Ravi de voir que l’équipe WordPress a mis les moyens pour que cette évolution de jQuery se fasse sans douleur.
    Bravo et merci,

  2. Bonjour
    Il semblerait que wordpress version 5.7.2 utilise une version déprécié de jquery

    /wp-admin/js/dashboard.min.js: jQuery.isFunction() is deprecated
    /wp-content/plugins/health-check/assets/javascript/health-check.js: jQuery.fn.click() event shorthand is deprecated
    /wp-content/plugins/health-check/assets/javascript/health-check.js: Number-typed values are deprecated for jQuery.fn.css( « strokeDashoffset », value )
    /wp-content/plugins/health-check/assets/javascript/health-check.js: jQuery.fn.submit() event shorthand is deprecated
    /wp-content/plugins/health-check/assets/javascript/health-check.js: jQuery.fn.keyup() event shorthand is deprecated

    thanks

  3. Bonjour @narolles,
    D’une part, une mise à jour de jQuery est effectivement prévue sur WP 5.8 ;
    D’autre part, mis à part le premier (mais il s’agit peut-être d’une conséquence des autres avertissements) les avertissements relevés ci-dessus ne semblent pas liés au cœur de WordPress mais à l’extension Health Check apparemment installée sur ce site. Pour rappel, l’extension Site Health peut être supprimée puisque ses fonctionnalités ont été intégrées au cœur de WordPress depuis quelques versions maintenant 🙂

    Bonne journée,
    Jb A.

  4. Bonjour et Merci @Audrassjb
    Merci pour votre éclaircissement….j’ai eu d’autres avertissements, à chaque fois je me suis adressé aux propriétaires des plugins concernés. Tous sont étonnés, parfois disent qu’ils n’utilisent pas jquery et que probablement cela vient du core de wordpress. Donc je pense pour l’instant il est urgent d’attendre l’arrivée de la version 5.8 et si besoin d’y revenir.
    Merci encore
    Pour Health Check ce plugin apporte des éléments supplémentaires au Health Check du core wordpress comme d’activer un mode dépannage bien pratique. De plus il est qualifié d’indispensable dans différents audits.
    Belle journée
    Hello and Thank you @Audrassjb
    Thank you for your clarification …. I had other warnings, each time I addressed the owners of the plugins concerned. Everyone is amazed, sometimes say that they don’t use jquery and that probably it comes from the core of wordpress. So I think for the moment it is urgent to wait for the arrival of version 5.8 and if necessary to come back to it.
    thanks again
    For Health Check this plugin brings additional elements to the WordPress core Health Check such as activating a handy troubleshooting mode. In addition, it is qualified as essential in various audits.
    Beautiful day

Laisser un commentaire