Guide des changements techniques de WordPress 6.2

Ce guide décrit les principaux changements techniques que vous trouverez sur WordPress 6.2, dont la sortie est prévue le 28 mars 2023.

WordPress 6.2 corrige quelque 300 tickets Trac : 110 sont des améliorations et nouvelles fonctionnalités166 sont des corrections de bogues et 20 sont d’autres tâches courantes.

On retrouvera 28 améliorations de performances15 améliorations d’accessibilité et 18 améliorations de code notamment dédiées à la prise en charge des versions les plus récentes de PHP.

Du côté du projet Gutenberg, 1645 pull requests ont été fusionnées au cœur de WordPress : 292 améliorations, 354 corrections de bogues et 30 améliorations concernant l’accessibilité de l’éditeur.

Les modifications apportées par WP 6.2 concernent 44 composants du cœur WordPress. Vous trouverez dans cet article des précisions concernant les modifications les plus impactantes.

En route pour un petit tour d’horizon des
nouveautés techniques de WordPress 6.2 🚀

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.2 lorsque cette version sortira le 28 mars 2023.

Les polices Google Font sont maintenant incluses localement dans les thèmes natifs

Suite aux incertitudes juridiques liées à l’utilisation des polices Google Fonts directement chargées depuis les serveurs de Google, les thèmes natifs qui embarquaient auparavant directement des polices provenant des serveurs de Google ne le feront plus à partir de WordPress 6.2.

Cela concerne les thèmes suivants :

  • Twenty Twelve à partir de sa version 3.9
  • Twenty Thirteen à partir de sa version 3.8
  • Twenty Fourteen à partir de sa version 3.6
  • Twenty Fifteen à partir de sa version 3.4
  • Twenty Sixteen à partir de sa version 2.9
  • Twenty Seventeen à partir de sa version 3.2

Les autres thèmes natifs n’utilisent pas directement de polices Google et ne sont donc pas concernés par cette modification.

À partir de maintenant, chaque thème concerné va servir une nouvelle feuille de styles depuis son propre répertoire, au sein du domaine de votre site. Si le thème embarque plusieurs polices différentes, votre thème les embarquera en les plaçant dans une seule feuille de styles pour de meilleures performances.

Voici par exemple la déclaration de feuille de styles de Twenty Thirteen :

<link
	rel="stylesheet"
	id="twentythirteen-fonts-css"
	href="https://example.com/wp-content/themes/twentythirteen/fonts/source-sans-pro-plus-bitter.css?ver=20230328"
	media="all"
/>

Comme vous pouvez le voir, les polices sont maintenant directement embarquées depuis les thèmes natifs, afin d’éviter toute dépendance tierce.

Attention : si vous avez déjà modifié ou retiré l’appel Google Fonts via un thème enfant ou via une extension, il est recommandé de vérifier que ce changement n’affecte pas votre site.

Pour en savoir plus, consultez la note de développement suivante :

L’éditeur de blocs

WordPress 6.2 comprend 10 versions du projet Gutenberg – 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15.0 et 15.1. Vous y trouverez de nouvelles API, des mises à niveau de bibliothèques, des améliorations très utiles des Styles globaux, encore plus de fonctionnalités prises en charge nativement par les blocs, de nouveaux crochets d’action et filtres, ainsi que bien d’autres modifications ayant été développées sur ces 10 versions de l’extension Gutenberg.

Pour en savoir plus, consultez les notes de développement suivantes :

Internationalisation

Dans WordPress 6.2, le composant internationalisation (abrégé « i18n ») propose une nouvelle fonction conteneur et propose de faciliter le changement des traductions de l’administration du site pour chaque compte. Voici la note de développement dédiée aux modifications ayant eu lieu sur ce composant :

API de gestion des fichiers système

Si vous utilisiez la fonction copy_dir() pour déplacer des répertoires, vous serez probablement heureux de découvrir la nouvelle fonction move_dir(), qui arrive avec WordPress 6.2.

Notons également l’apparition de la fonction wp_opcache_invalidate() qui sert à vider OPcache pour des fichiers PHP individuels après les avoir surchargés. La fonction  wp_opcache_invalidate_directory() a été ajoutée dans le cadre du ticket #57375 afin de vider le cache OPcache de façon récursive pour les fichiers PHP après les avoir surchargés. Cette fonction accepte un paramètre unique $dir, pointant vers le répertoire contenant les fichiers PHP pour lesquels OPcache doit être vidé.

Dans le ticket #57375, la méthode WP_Filesystem_Direct::move() a reçu la possibilité de gérer des répertoires afin de la rendre cohérente par rapport aux méthodes ::move() présentes dans WP_Filesystem_FTPextWP_Filesystem_ftpsockets et WP_Filesystem_SSH2.

Base de données

La possibilité de nettoyer les noms de tables et de champs a été ajoutée dans la méthode wpdb::prepare(). Plus d’infos dans la note de développement dédiée :

Gestion des publications

La fonction get_page_by_title() est maintenant dépréciée en faveur de l’utilisation de WP_Query.

Performances

WordPress 6.2 apporte plusieurs gains de temps de chargement importants au cœur du CMS. Cela est clairement visualisable dans les tests que nous avons conduits avec des mesures de signaux web essentiels (Web Vitals en anglais) et de chargement côté serveur (Server Timing en anglais).

Les performances des thèmes basés sur des blocs ont également été améliorées, avec un TTFB (en anglais Time to First Byte, ou temps de chargement du premier octet) qui est environ 20 % plus rapide, et aussi 14 % d’amélioration sur le LCP (Largest Contenful Paint, représentant le temps avant que la page complète soit lisible). Sur des pages où vous utilisez de grandes bannières d’images, vous devriez même observer une amélioration du critère LCP d’environ 19 %.

Autres améliorations de performances :

  • Le nouveau filtre pre_wp_load_alloptions permet de court-circuiter le chargement des options auto-chargées de WordPress avec des conditions personnalisées. Voir le ticket #56045 pour plus d’informations.
  • Les résultats de la fonction get_adjacent_post() sont maintenant mis en cache. Voir le ticket #41131.
  • Les clés de mise en cache de WP_Term_Query sont dorénavant basées sur du SQL sans variables, afin de pouvoir être mises en cache. Voir le ticket #57298.
  • WP_Query ne parcourt désormais plus les publications deux fois avant de les retourner. Ça peut paraître une évidence, mais le ticket #57373 a nécessité beaucoup de travail sur ce point.
  • Le chargement différé des métadonnées des termes de taxonomies est à présent plus rapide, grâce à l’utilisation de la fonction wp_cache_get_multiple(). Voir le ticket #57150.
  • Les résultats de wp_get_global_settings() sont maintenant placés en cache au sein d’une seule et unique requête, ce qui améliore de 8 % les temps de réponse du cœur WordPress. Pour en savoir plus, voir le ticket #57502.

Thèmes

Les développeuses et développeurs de thèmes WordPress pourront apprécier l’arrivée de nouvelles fonctionnalités, et devront aussi prendre en compte la suppression de certains fonctionnalités obsolètes :

  • La fonctionnalité « Variations de styles » a été ajoutée dans la liste des filtres sur les thèmes sur WordPress.org. Voir le ticket #56869.
  • Le fichier theme.json prend maintenant en charge davantage de pseudo-classes CSS liées aux liens hypertextes, comme :link ou :any-link. Voir le ticket #57053.
  • Les thèmes possédant un nom composé de chiffres sont désormais pris en charge par le CMS via un changement dans WP_Theme::__construct(). Voir le ticket #54645.
  • Amélioration des performances des fonctions _add_block_template_part_area_info et _add_block_template_info en diminuant les appels à la fonction get_option. Voir le ticket #57077.
  • Une mise en cache a été ajoutée sur WP_Theme::is_block_theme(). Voir le ticket #57114.

Bibliothèques externes

La bibliothèque jQuery a été mise à jour, elle est passée de la version 3.6.3 à 3.6.4.

En outre, la bibliothèque Requests a aussi été mise à jour. Une note de développement détaille d’ailleurs les changements apportés :

Autres mises à jour

Plusieurs crochets d’action et filtres ont été mis à jour, vous les trouverez dans la note de développement suivante :

Mais ce n’est pas tout !

Voici d’autres composants qui ont reçu des mises à jour notables.

Processus de chargement de WP

Ajout d’une vérification que les fonctions mysqli_connect() ou mysql_connect() sont bien disponibles. Cela résout une erreur fatale potentiellement provoquée par l’absence de l’extension PHP mysqli sur le serveur, et affiche un message d’erreur clair le cas échéant. Voir le ticket #51988.

Commentaires

Ajout de la possibilité de passer le paramètre $comment_ID aux fonctions get_comment_time() et comment_time(). Cela apporte une meilleure cohérence vis-à-vis des fonctions similaires get_comment_date() et comment_date(). Voir le ticket #52322.

Mots de passe d’applications

Les URL en HTTP sont désormais autorisées pour la création de mots de passe d’applications dans le cadre d’un environnement local. Voir le ticket #52617.

Bibliothèques externes

Les bibliothèques suivantes ont été mises à jour :

Formattage

Optimisation de la fonction de bas niveau wp_kses_bad_protocol() afin d’améliorer les performances de la fonction d’échappement esc_url(). Voir le ticket #22951.

Modernisation du code

Un énorme travail a été fait pour améliorer encore la conformité de la structure du code de WordPress vis-à-vis des versions de PHP supérieures à 8.0. Voir le ticket #56788.

E-mails

L’ajout de pièce jointes avec noms de fichiers personnalisés dans la fonction wp_mail() est maintenant possible en passant un tableau associatif $attachments, où les chaînes utilisées en tant que clés seront employées pour déterminer les noms de fichiers. Voir le ticket #28407.

Médias

Il est maintenant possible de fournir explicitement une valeur booléenne false au paramètre $attr de la fonction wp_get_attachment_image() afin de s’assurer que l’attribut decoding n’est pas ajouté au média. Voir le ticket #57086.

La logique permettant de déterminer les images participant au LCP (Largest Contenful Paint, représentant le temps avant que la page complète soit lisible) au sein des thèmes basés sur des blocs a été grandement améliorée, afin de s’assurer que ces images ne soient pas chargées en différé. Cela permet d’améliorer la conformité LCP des thèmes basés sur des blocs. Cette modification tire par ailleurs profit du principe des éléments de modèles de l’éditeur de site pour éviter de charger en différé les médias situés dans l’entête du site. Un test conduit sur une page créée via un thème basé sur des blocs a permis de souligner une amélioration de 19 % du critère LCP sur WordPress 6.2. Voir les tickets #56930 et #57490 pour plus de détails.

API REST

Ajout de la prise en charge de caractères non latins dans la Regex utilisée pour le point de terminaison template. Ces caractères sont encodés afin de pouvoir être utilisés dans une URL (exemple : %cf%84%ce%b5%cf%83%cf%84). Voir le ticket #57329.

Gestion des comptes

Ajout du nouveau crochet d’action wp_set_password, déclenché après la création d’un mot de passe pour un compte déterminé. Cela aidera les auteur·ices d’extensions à intercepter toutes les utilisations de wp_set_password(), qu’elles proviennent du cœur de WordPress ou d’autres extensions. Voir le ticket #57436.

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.2 Release Candidate 1. Nous comptons sur vous pour vous assurer 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 de l’anglais puis adapté à partir du Field Guide de WP 6.2 par Jb Audras. Merci à Jenny Dupuy, FX Bénard et Bruno Tritsch pour leur relecture attentive.

Guide des changements techniques de WordPress 6.1

La version Release Candidate de WordPress 6.1 est sortie mardi 11 octobre. Il est donc temps de parcourir les différents changements techniques qu’apportera cette prochaine version majeure de notre CMS.

La sortie finale de cette nouvelle version est planifiée pour le 1er novembre 2022.

WordPress 6.1 : Guide des changements techniques

L’équipe de direction de WP 6.1 et plusieurs centaines de contributeurs et contributrices ont travaillé sur plus de 120 améliorations et nouvelles fonctionnalités241 correctifs et 42 autres tâches variées, ce qui représente plus de 400 tickets sur Trac.

À cela, il faut ajouter plus de 50 pull requests ayant permis de fusionner les différentes versions de Gutenberg dans le cœur du CMS. Du côté du projet Gutenberg il y a eu en tout 1684 pull requests apportant 425 nouvelles fonctionnalités et améliorations et 428 correctifs de bugs, le reste concernant des tâches courantes de revue de qualité du code, de documentation ou d’amélioration des outils de déploiement.

En route pour un petit tour d’horizon des
nouveautés techniques de WordPress 6.1 🚀

Continuer la lecture « Guide des changements techniques de WordPress 6.1 »

Déposer et gérer une extension sur WordPress.org : documentation en français

Proposer une extension sur le répertoire WordPress.org, c’est une belle façon de faire profiter la communauté de ce que vous avez développé pour vos propres besoins, et de rendre la pareille à cette communauté tout en vous y faisant connaître.

Ça tombe bien, l’équipe de documentation de WordPress en français vient de publier un guide pour apprendre aux développeurs et développeuses d’extensions comment déposer et gérer dans la durée leurs extensions WordPress sur le répertoire officiel des extensions WordPress.org.

Continuer la lecture « Déposer et gérer une extension sur WordPress.org : documentation en français »

Guide des changements techniques à venir sur WordPress 5.8

La sortie de WordPress 5.8 est
prévue pour le 20 juillet 2021

Découvrez dans ce guide les nouveautés techniques qui vous attendent pour cette nouvelle version de l’outil qui propulse plus de 42% du web !

La version 5.8 de WordPress prévue pour le 20 juillet 2021 n’apportera pas moins de 96 améliorations et nouvelles fonctionnalités, 170 correctifs de bugs et 24 autres modifications diverses. Cela correspond au total à 291 tickets sur Trac, l’outil que nous utilisons pour organiser le développement de WordPress.

Dans ce guide, vous retrouverez tous les changements majeurs apportés par la version 5.8 de WordPress.

Pour chaque composant de WordPress concerné par un changement majeur, vous trouverez un paragraphe introductif en français suivi des notes de développement et autres ressources publiées par l’équipe de développement de WordPress, en anglais.

Continuer la lecture « Guide des changements techniques à venir sur WordPress 5.8 »

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.

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

Les changements techniques à venir sur WordPress 5.5

La sortie de WordPress 5.5 est prévue le 11 août 2020 ! 🧡💙

Selon l’équipe de développement du cœur WP, WordPress 5.5 se présente par l’étendue de ses modifications comme la plus importante version de WordPress jamais sortie ! 💥

En tant qu’utilisatrice ou utilisateur, vous pourrez profiter de la fonctionnalité de mise à jour automatique des extensions et des thèmes, de l’arrivée du répertoire de blocs, des plans de site XML natifs, du chargement différé (lazy loading) des images, ainsi que des toutes dernières nouveautés de Gutenberg. En tant que développeuse ou développeur, vous y trouverez 165 améliorations et nouvelles fonctionnalités, 310 correctifs de bugs et bien plus encore !

Bien entendu, tout cela induit des changements de code dans le cœur du CMS, ce qui pourrait vous demander d’effectuer des modifications dans le code de votre site, de vos thèmes ou de vos extensions.

Dans cet article, nous nous concentrerons justement sur les changements techniques majeurs de cette nouvelle version.

Continuer la lecture « Les changements techniques à venir sur WordPress 5.5 »

La documentation de WordPress est maintenant disponible en français

Depuis quelques jours, la documentation de WordPress en français est disponible sur cette page : https://fr.wordpress.org/support/

Cette documentation est pour l’instant répartie en 11 rubriques :

  • Qu’est-ce que WordPress
  • Installer WordPress
  • Utilisation de base
  • Administration générale
  • Maintenance de votre installation
  • Développement
  • Sécurité
  • Résolution des problèmes
  • WordPress multisite
  • Les thèmes (natifs) WordPress
  • L’éditeur de blocs

Ce rubriquage est susceptible d’évoluer.

En outre, les liens vers la documentation anglaise présents dans l’interface d’administration de WP seront progressivement modifiés pour pointer vers leur version française, lorsqu’elle existe.

Un petit bémol : en bas de page, des liens menant vers le « forum officiel WordPress.org » sont affichés. Nous vous prions de ne pas ouvrir de nouveau fil de discussion sur ce forum et de plutôt utiliser le forum d’entraide de l’association WPFR. En effet, spécificité française, le forum d’entraide n’est pas hébergé par le site officiel fr.wordpress.org mais par l’association WPFR. Nous essayerons de supprimer ces liens erronés dès que possible.

Un peu de contexte

Cette documentation est disponible en anglais depuis quelques années, et à l’automne 2019, plusieurs représentants des équipe locales de WordPress ont demandé à avoir la possibilité d’en effectuer la traduction dans leur langue. Ce fut le cas de l’équipe française. Fin 2019, une copie de cette documentation en anglais nous a été fournie sur fr.wordpress.org/support, et nous avons monté une équipe spécialement chargée de la traduction de cette documentation.

Aujourd’hui, nous avons traduit presque 40% des contenus anglophones en français. Comme il s’agit d’une quantité significative de contenus traduits, nous avons décidé de les rendre dès aujourd’hui accessibles à toutes et à tous, tout en continuant ce travail de traduction (et en espérant que cela nous permettra de recruter de futur·es contributrices et contributeurs – voir ci-après).

Ce sont donc à ce jour 80 pages de documentation qui sont rendues disponibles aux utilisatrices et utilisateurs francophones de notre CMS favori.

Un grand merci à l’équipe de traduction de la documentation, et particulièrement à Jenny Dupuy, Marie Comet, Sébastien Serre et Bruno Tritsch ainsi qu’à toutes les personnes ayant contribué à traduire des contenus ou à relire des traductions : Laurent Millet, Julian Bonnesset, Sylvie Clément, Didier Wolforg, Clément Polito, Valérie Galassi, Bastien Ho, Emmanuel Hesry, Thomas Piron, Fx Benard et Frédéric Momméja.

Voici l’état des lieux de la traduction des différentes pages de documentation, à ce jour (25 mai 2020) :

Retour sur l’organisation de la traduction de la documentation de WordPress

Ce travail de traduction est une tâche monumentale, mais l’équipe française s’est structurée et organisée afin de pouvoir l’appréhender avec méthode.

Une fois la copie de la documentation anglophone faite sur fr.wordpress.org/support, l’équipe a listé l’ensemble des pages de contenus afin de s’organiser.

À l’aide d’une feuille de suivi, chaque volontaire s’auto-assigne les contenus sur lesquels elle ou il souhaite travailler. Une fois la page de documentation traduite, son statut est placé en attente de relecture, par au moins deux relecteur·ices qui peuvent proposer des améliorations ou corriger les éventuelles erreurs. Une fois la page relue, elle est publiée et ajoutée sur la page d’accueil du site contenant la documentation.

Cette méthodologie permet de s’assurer de la bonne qualité des traductions proposées et de suivre l’avancement du projet.

À ce stade, sur la dizaine de langues à avoir commencé la traduction de la documentation de WordPress, nous sommes l’une de celles qui a le plus avancé (…et même a priori celle qui a le plus avancé). C’est un vrai succès que nous sommes fiers de partager auprès de la communauté WordPress aujourd’hui 🙂

Contribuer à la traduction de la documentation de WordPress en français

Vous l’aurez compris, cette actualité a pour but de présenter le travail en cours sur la documentation de WordPress en français, mais aussi d’inciter la communauté francophone à y contribuer 😇

Si ce travail de documentation peut paraître titanesque au premier abord, nous avons très largement ouvert la voie, et l’appui des quelques contributrices et contributeurs pourrait vraiment faire la différence et permettre de finaliser la traduction de la documentation en quelques semaines.

Pour rejoindre l’équipe, rien de plus simple, il suffit de vous inscrire sur le Slack WordPress francophone puis de vous rendre sur le canal #documentation-fr.

Jenny Dupuy a réalisé un guide complet à l’attention des nouveaux contributeurs et des nouvelles contributrices, nous vous invitons à en prendre connaissance.

Pour toute question, rejoignez-nous sur le Slack WordPress francophone, l’équipe se fera un plaisir de vous accueillir et de répondre à vos question ! 😃

Contribuer au cœur WordPress / Partie 2 : créer un patch avec GIT

Cet article est le second d’une série dédiée à la contribution au cœur WordPress. Aujourd’hui, l’objectif est d’expliquer comment créer un patch pour proposer un correctif ou une amélioration dans le cœur WordPress.

Voir l’article précédent : comprendre le fonctionnement de Trac, l’outil de ticket de WordPress.

Continuer la lecture « Contribuer au cœur WordPress / Partie 2 : créer un patch avec GIT »

Contribuer au cœur WordPress / Partie 1 : Trac, le gestionnaire de tickets utilisé par WP

En tant que logiciel open-source, WordPress a besoin de contributeurs et contributrices. Des personnes de tous les pays du monde contribuent à ce projet, et dans une volonté de développer cette culture de la contribution dans la communauté WordPress francophone, nous lançons une série d’articles/tutoriels sur le sujet.

In open source, we feel strongly that to really do something well, you have to get a lot of people involved.

Linus Torvalds

Cet article est le premier d’une série dédiée à la contribution au cœur WordPress. Aujourd’hui, l’objectif est de donner les pistes et liens permettant de trouver des tickets « simples » à corriger afin de pouvoir se lancer dans le grand bain de la contribution au CMS qui propulse plus de 30% du web.

Continuer la lecture « Contribuer au cœur WordPress / Partie 1 : Trac, le gestionnaire de tickets utilisé par WP »

CLPTE prerequired actions

WordPress Devs who wish to have CLPTE access to your products (themes, plugins) here are the guidelines to provide to your French translators.

In order to assure the best possible quality for all translations (and therefore for the products you so dearly worked on), we have established a few rules your French team members should follow:

  1. We follow the WordPress meta handbook for translations recommendations. Your translators should speak French.
  2. They should follow these steps:
Continuer la lecture « CLPTE prerequired actions »