Ce guide décrit les principaux changements techniques que vous trouverez sur WordPress 6.3, dont la sortie est prévue le 8 août 2023.
Cette version implémente 345 tickets : 126 tickets correspondent à des améliorations et nouvelles fonctionnalités, tandis que 198 tickets sont des corrections de bugs, auxquels s’ajoutent 21 tâches diverses.
Cette version implémente par ailleurs 68 tickets ayant un focus sur les performances et 23 sur l’accessibilité, tandis que 33 tickets sont liés à la modernisation du code du CMS.
Le projet Gutenberg inclut quant à lui 1737 pull requests, dont 307 correspondent à des améliorations, 481 à des correctifs de bugs et 55 à des améliorations d’accessibilité.
Les modifications de WordPress 6.3 se répartissent dans 43 composants Core, et vous trouverez dans ce communiqué les modifications les plus impactantes, composant par composant.
En route pour un petit tour d’horizon des
nouveautés techniques de WordPress 6.3 🚀
Tous les liens de cet article pointent vers des notes de développement rédigées en anglais.
L’objectif est de fournir un panorama général des changements techniques apportés par cette version, en français, puis de diriger les personnes qui souhaitent en savoir plus vers les notes de développement en anglais.
À noter : certaines modifications listées ici vont nécessiter des actions de la part des auteurs et autrices de thèmes et d’extensions, qui devront adapter ou modifier leur code. Si vous êtes concerné·e, veuillez lire les notes de développement listées dans cet article consciencieusement afin de vous assurer que votre code fonctionnera avec WordPress 6.3 lorsque cette version sortira le 8 août 2023.
L’éditeur de blocs
WordPress 6.3 n’implémente pas moins de 10 versions de l’extension Gutenberg : 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16.0 et 16.1. Vous trouverez de nouvelles API, de nouvelles propriétés de blocs, un mode d’édition de blocs, des classes de couleurs et de nombreuses autres modifications.
À noter : les blocs réutilisables ont été renommés en « compositions synchronisées ».
Pour en savoir plus, consultez les notes de développement suivantes :
Thèmes natifs
Les thèmes natifs ont abandonné le support du navigateur Internet Explorer et n’incluent donc plus aucun script ou feuille de styles destinée à ce navigateur. Les scripts HTML5 Shiv ne sont d’ailleurs plus chargés non plus dans les thèmes Twenty Thirteen, Twenty Fifteen et Twenty Seventeen (ticket #56699).
Les personnes qui souhaitent continuer à supporter IE peuvent cependant utiliser un bout de code pour restaurer ces fonctionnalités.
API de gestion du cache
L’API de gestion du cache a reçu de nombreuses améliorations, notamment l’introduction de nouveaux groupes de cache spécifiques aux requêtes afin d’offrir un meilleur contrôle aux développeur·euses.
Vous pouvez maintenant définir le moment d’expiration du cache d’un groupe, vider le cache de groupes spécifiques, modifier la dernière valeur d’un groupe ou encore déclarer certains groupes d’objets mis en cache comme n’étant pas persistants. Avec ces changements, vous pouvez implémenter votre propre stratégie personnalisée d’invalidation du cache.
API de gestion du système de fichiers
Les fichiers masqués (préfixés par .
) peuvent maintenant être inclus dans la fonction list_files()
avec un nouveau paramètre optionnel $include_hidden
. Sa valeur par défaut est false
pour cause de rétrocompatibilité (ticket #53659).
Mode développement
Une nouvelle constante WP_DEVELOPMENT_MODE
a été introduite afin de déterminer un contexte de développement spécifique. Les valeurs reconnues pour cette constante sont core
, plugin
, theme
, all
, ou une chaîne vide, valeur par défaut indiquant que le site n’est pas dans un contexte de développement.
Deux nouvelles fonctions ont été ajoutées pour interagir avec le mode développement : wp_in_development_mode( $mode )
et wp_get_development_mode()
.
Les différents contextes de développement affectent des fonctionnalités de mise en cache spécifiques. Par exemple, le cache est surchargé lorsque le site se situe en mode développement de thème, mais pas si l’on est en mode développement core
(ticket #57487).
La valeur actuelle de la constante WP_DEVELOPMENT_MODE
est aussi accessible sur l’écran Outils > Santé du site > Informations, dans la section listant les constantes WordPress (#58646).
Prise en charge de PHP
La prise en charge de PHP 5 a été abandonnée dans WordPress 6.3.
La nouvelle version minimale prise en charge est PHP 7.0.
La version recommandée de PHP demeure toujours 7.4 ou plus (ticket #57345).
Internationalisation
Plusieurs améliorations, dont la possibilité de court-circuiter le filtre load_textdomain
et de réduire le temps de chargement des traductions en temps réel.
Médias
Le composant Médias a reçu plusieurs améliorations destinées à diminuer le temps de chargement des contenus comprenant des images. WordPress ajoute maintenant automatiquement l’attribut fetchpriority
avec la valeur high
à l’image qui est la plus susceptible d’être considérée comme l’image « LCP » (Largest Contentful Paint).
D’autres améliorations ont été faites sur la gestion automatique du chargement différé des images afin de mieux détecter les moments où l’attribut doit être omis, sur certaines images.
API de gestion des métadonnées
Les performances de la gestion des métadonnées ont été grandement améliorées en développant la capacité de WordPress a charger de façon conditionnelle certaines métadonnées des termes de taxonomies, des commentaires ou encore des sites d’un multisite. Ce chargement conditionnel permet d’éviter de demander la récupération de données alors qu’elles ne sont pas utilisées dans l’écran. Cela réduit les requêtes inutiles en base de données et améliore les performances d’ensemble de votre site.
Gestion des publications
La fonction get_pages()
a été refactorisée afin d’utiliser WP_Query
. Cette amélioration réduit significativement la complexité de la fonction historique get_pages()
en déchargeant la responsabilité des performances et de la gestion du cache sur la classe WP_Query
(tickets #55806 et #12821).
Chargement des scripts
La prise en charge des attributs HTML5 async
et defer
a été ajoutée, ce qui permet aux développeur·euses de définir une stratégie de chargement de leurs scripts. La stratégie de chargement peut être activée en modifiant le paramètre $in_footer
pour lui fournir un tableau contenant une stratégie de chargement pour les fonctions wp_register_script()
et wp_enqueue_script()
. Si elle est présente, la stratégie de chargement sera ajoutée à la balise script
associée.
Gestion des mises à jour des extensions et des thèmes
WordPress 6.3 propose une nouvelle fonctionnalité de restauration. Cela permettra à WordPress de restaurer automatiquement la version précédente d’un thème ou d’une extension si la mise à jour automatique associée a fait planter le site.
- Lorsqu’un thème ou une extension est mise à jour, la version précédente est déplacée dans un répertoire de sauvegarde temporaire :
wp-content/upgrade-temp-backup/plugins/[slug]
pour les extensions ;wp-content/upgrade-temp-backup/themes/[slug]
pour les thèmes.
- Si la mise à jour échoue, alors la sauvegarde est restaurée dans son emplacement d’origine.
- Si la mise à jour réussit, la sauvegarde temporaire est supprimée.
Deux nouveaux tests sont également ajoutés à l’écran de Santé du site :
- Vérification que le répertoire
upgrade-temp-backup
est accessible en écriture ; - Vérification qu’il y a assez d’espace disque disponible pour effectuer les mises à jour sans risque.
Veuillez noter que cette fonctionnalité de restauration ne peut pas être utilisée pour remettre en place la version précédente d’un thème ou d’une extension après une mise à jour réussie. Cela ne fonctionne que si le site a rencontré une erreur fatale et que le site est donc considéré comme étant non fonctionnel.
Gestion des comptes
La classe WP_User_Query
était la dernière classe de ce type qui ne permettait pas encore la mise en cache des résultats, c’est maintenant chose faite. Chaque appels à la classe WP_User_Query
sera maintenant automatiquement mis en cache par défaut, à moins qu’un paramètre n’indique de ne pas le faire. Il est aussi possible de désactiver la mise en cache globalement en utilisant un filtre.
Les résultats des requêtes sont placés dans le groupe de cache user-queries
. La mise en cache est désactivée pour les requêtes utilisant le paramètre field
et pour les requêtes comprenant plus de 3 champs.
Autres changements techniques
API CRON
La limite de la mémoire CRON a été agrandie sur la constante WP_MAX_MEMORY_LIMIT
(par défaut de 256 Mo). Un nouveau filtre cron_memory_limit
a été ajouté pour ajuster cette valeur si nécessaire (ticket #56628).
Éditeur
Un nouvel attribut source
a été ajouté sur les compositions de blocs afin de permettre de les filtrer à partir de cette source (ticket #58622).
Contenus embarqués
- Anghami a été ajouté en tant que fournisseur oEmbed de confiance (ticket #49850) ;
- La prise en charge des profils de créateur·ice TikTok a été ajoutée (ticket #55784).
Formatage
- Ajout des attributs ARIA suivants aux attributs autorisés dans les fonctions KSES :
aria-controls
,aria-expanded
, andaria-current
(ticket #55370) ; - La fonction CSS
repeat()
a été ajoutée aux éléments autorisés dans les fonctions KSES (ticket #58551).
Divers
- Dans les fonctions KSES, la fonction
safecss_filter_attr()
a été revue afin d’autoriser la propriétéfilter
à recevoir une URL en référence à un élément SVG (ticket #57780) ; strpos()
a été remplacé par différentes fonctions PHP modernes afin de faire évoluer le code du CMS (tickets #58012, #58206 et #58220) ;- Dans la classe WP_Comments_List_Table, lorsque la fonction
get_comments()
est appelée, le paramètreupdate_comment_post_cache
est passé avec la valeurtrue
, afin d’améliorer les performances (#57802) ; - La fonction
_wp_array_get()
est la fonction la plus appelée sur l’interface publique de tous les sites WordPress, puisqu’elle est appelée environ 23 000 fois sur chaque chargement de page sur un thème basé sur des blocs. WordPress 6.3 ajoute quelques améliorations de performances sur cette fonction (ticket #58376) ; - Un nouveau crochet d’action
bulk_edit_posts
a été ajouté afin de permettre de déclencher une action après que les données d’une édition par lot aient été traitées et avant de renvoyer les résultats. Cela permet notamment aux développeurs et développeuses d’ajouter d’autres modifications sans avoir besoin de greffer des appels AJAX supplémentaires (ticket #28112).
API REST
- L’API REST
Themes
permet maintenant de savoir si un thème prend en charge l’éditeur de site, grâce à la propriétéis_block_theme
située dans la réponse API du point de terminaisonwp/v2/themes
(ticket #58123) ; - Un point de terminaison a été ajouté afin d’obtenir les révisions des styles globaux, accessible sur
/wp/v2/global-styles/revisions
(ticket #58524) ; WP_REST_Templates_Controller
a été modifié afin d’inclure un champmodified
pour connaître la date de modification des modèles et des éléments de modèles (ticket #58540).
Thèmes
La nouvelle fonction publique wp_get_remote_theme_patterns()
a été ajoutée afin d’effectuer des requêtes sur les patterns
provenant du theme.json
et se substitue aux précédents usages d’API privées (#58460).
Nouveaux crochets d’actions
Nouveaux filtres
plugins_list
(#57278)pre_load_textdomain
(#58035)wp_get_attachment_image_context
(#58212)get_pages_query_args
(#12821)cron_memory_limit
(56628)nav_menu_item_attributes
(#57140)nav_menu_link_attributes
(#57140)nav_menu_submenu_attributes
(#57140)pre_wp_setup_nav_menu_item
(#56577)site_editor_no_javascript_message
(#56228)image_edit_thumbnails_separately
(#57685)wp_navigation_should_create_fallback
(#58750)wp_min_priority_img_pixels
(#58235)
Crochets d’actions et filtres modifiés
rest_allowed_cors_headers
(#57752) etrest_exposed_cors_headers
(#57752)edit_custom_thumbnail_sizes
a été déprécié et remplacé parimage_edit_thumbnails_separately
(#57685)
Fichiers dépréciés
- Le fichier
wp-admin/media.php
a été déprécié. Les personnes visitant cette page seront redirigées sur la médiathèque, avec une notification (ticket #57612).
Mise à jour de bibliothèques externes
Les bibliothèques externes suivantes ont été mises à jour :
PHPMailer
vers la version 6.8.0 (#57873)Requests library
vers la version 2.0.6 (#58079)jQuery
vers la version 3.7.0 (#58083)Sodium Compat
vers la version 1.20.0 (#58224)jQuery Migrate
vers la version 3.4.1 (#58451)npm
vers la dernière version disponible (#58623)
Que vous développiez des thèmes ou des extensions, pensez à tester et retester votre code pour vous assurer de sa compatibilité avec ces changements. Vous pouvez utiliser l’extension Beta Tester sur un site de test pour vérifier la compatibilité de vos développements avec WordPress 6.3 Release Candidate 1. Nous comptons sur vous pour vérifier que votre code fonctionne correctement avec le cœur du CMS, pour le bien des millions d’utilisateurs et utilisatrices de WordPress ♥️
Ce guide a été traduit puis adapté à partir du Field Guide de WP 6.3 par Jb Audras.
Merci à Jenny Dupuy pour sa relecture attentive.
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.