Nouveaux blocs liés aux commentaires arrivant avec WordPress 6.0 – WP Tavern

WordPress 6.0 tentera de s’attaquer aux listes de commentaires via le système de blocage. C’est un domaine qui a pris du retard sur d’autres fonctionnalités, qui ont reçu l’essentiel du travail dans les versions précédentes.

La semaine dernière, JuanMa Garrido a lancé un appel à volontaires pour tester les nouveaux blocs via le blog Make WordPress Test. Les contributeurs sont invités à laisser des commentaires dans les commentaires ou à créer de nouveaux problèmes via le référentiel Gutenberg GitHub. Les listes de commentaires des publications ont subi quelques modifications au fil du temps.

Avant WordPress 2.7, les auteurs de thèmes utilisaient un appel PHP foreach pour boucler sur un tableau d’objets de commentaires directement dans le modèle comments.php de leur thème.

C’était un système simple de HTML de base et quelques balises de modèle éparpillées partout. Cela a bien fonctionné jusqu’à l’introduction des réponses imbriquées. Les développeurs et les utilisateurs se sont empressés de mettre à jour les thèmes pour utiliser la nouvelle fonction wp_list_comments().

Avance rapide vers l’ère des modèles de blocs et de l’éditeur de site. Encore une fois, les commentaires ont changé, mais ce n’était qu’en surface.

Tout auteur de thème de bloc a dû utiliser des filtres PHP personnalisés pour modifier la sortie de la liste de commentaires, et les utilisateurs n’ont pour la plupart pas eu de chance en dehors de quelques contrôles de conception. WordPress 6.0 va presque boucler la boucle.

La sortie des commentaires revient aux modèles via le système de blocs. Les filtres PHP ne sont plus nécessaires pour déplacer la mise en page. Et les utilisateurs peuvent apporter des modifications via l’éditeur du site.

Certes, je n’avais pas passé beaucoup de temps à travailler avec des blocs liés aux commentaires avant aujourd’hui. Pour la plupart, je les ai complètement évités car j’attendais l’ensemble des blocs qui devraient atterrir avec WordPress 6. La dernière version du plugin Gutenberg embarque toute une suite de blocs spécifiques aux commentaires.

La boucle de requête de commentaires et le modèle de commentaire doivent fonctionner de la même manière que leurs homologues de publication. L’ensemble comprend plusieurs blocs liés aux métadonnées pour l’auteur du commentaire, la date, le lien de réponse et le lien de modification. Il y en a quelques nouveaux pour la pagination, et le prochain bloc Avatar fonctionnera également dans le modèle de commentaire.

J’ai ouvert le modèle de publication unique de mon thème actif et supprimé l’ancien bloc de commentaires de publication. Ensuite, j’ai inséré la nouvelle boucle de requête de commentaires  : sortie du bloc de boucle de requête de commentaires par défaut. J’ai été surpris qu’il n’y ait pas de styles opiniâtres – une bonne surprise.

Cependant, comme la sortie par défaut incluait la plupart des blocs possibles qu’un thème ou un utilisateur utiliserait, j’aurais aimé les voir enveloppés dans l’un des blocs liés à la mise en page comme Columns ou Row, fournissant une structure simple. Il n’a pas fallu longtemps pour déplacer quelques pièces et obtenir une mise en page qui me plaisait. J’ai eu le redoutable « Aww Snap !  » message une fois, perdant tout mon travail lorsque l’éditeur s’est écrasé.

Je ne pouvais pas reproduire le problème, mais j’appuyais nerveusement sur le bouton de sauvegarde toutes les deux minutes à partir de là. Éditeur et vues frontales du bloc de boucle de requête de commentaires personnalisé. À part le crash aléatoire de l’éditeur, tout se passait bien.

Cependant, je ne faisais qu’effleurer les bases à ce moment-là. Avec ceux à l’écart, je voulais savoir si les nouveaux blocs offriraient les outils que les auteurs de thèmes et les utilisateurs pourraient utiliser dans des projets du monde réel. Le premier problème que j’ai rencontré était l’ID de commentaire manquant dans la sortie frontale.

Cela est nécessaire pour que le navigateur de l’utilisateur revienne à son commentaire après en avoir soumis un via le formulaire. La sortie frontale n’affiche pas les classes de commentaires de la fonction comment_class().

Cela ne laisse aucun moyen aux auteurs de thèmes de cibler directement les commentaires en fonction de données telles que leur profondeur, leur type, leur statut, etc. Il s’agit d’une régression par rapport aux solutions de liste de commentaires précédentes dans WordPress. Il ne semble pas non plus y avoir de bloc « Titre des commentaires », qui produirait quelque chose comme « X réponse (s) au titre du message » au-dessus de la liste.

La plupart de ces problèmes devraient être triviaux à traiter dans le noyau. Ce sont ce que je considérerais comme des exigences de base pour une liste de commentaires fonctionnelle. Cependant, il y a un problème qui prendra probablement plus d’un cycle de publication pour se concrétiser.

Il n’y a pas de concept d’imbrication dans les outils de conception actuels. Chaque réponse à un commentaire parent reçoit une petite bosse de rembourrage à gauche. En dehors de cela, tous les niveaux imbriqués reçoivent le même traitement de conception que leur parent, chacun dans sa propre petite boîte.

Certaines conceptions ne sont actuellement pas possibles via l’interface, comme donner à un seul fil une couleur d’arrière-plan. Quelque chose d’aussi simple que ce qui suit ne peut pas être réalisé via les outils de conception : Les outils de conception ne prennent pas en charge les personnalisations imbriquées. Et ce n’est qu’une conception de liste de commentaires banale.

Ne vous attendez pas à faire quelque chose de plus avancé sans CSS personnalisé. Il n’y a pas d’outils construits autour de la hiérarchie. Le système de blocage de WordPress n’a pas bien géré des scénarios similaires.

Il suffit de tenter quelque chose de complexe à distance avec le bloc de navigation, par exemple, pour voir ses lacunes. Cependant, c’est un scénario beaucoup plus compliqué qu’une liste imbriquée de commentaires. Ce n’est pas un problème avec le système de blocs lui-même.

Les outils de conception n’ont pas encore rattrapé leur retard, et présenter de telles complexités dans une interface facile à utiliser n’est pas une promenade dans le parc. Depuis Gutenberg 12.9, le bloc Comments Query Loop ressemble à une régression du point de vue de la conception du thème.

Elle n’est pas aussi flexible que la méthode actuelle ou qu’elle l’était il y a toutes ces années, lorsque les commentaires étaient générés via une simple boucle foreach, un peu de HTML et quelques balises de modèle. Bien qu’il puisse être limité, il permet toujours aux utilisateurs finaux qui souhaitent modifier la conception de leur liste de commentaires. C’est une amélioration bienvenue, et je suis enthousiasmé par la façon dont le noyau peut s’en inspirer dans les futures versions.