Discourse ne lie pas automatiquement les commentaires sous les articles

Salut !
J’ai un problème : discourse n’affiche plus les commentaires sous mes articles. Lorsque mon article est publié, il apparaît sur le forum discourse de notre blog, mais je dois ensuite le lier manuellement dans l’article wordpress. Les commentaires apparaissent alors. Mais cette étape n’était pas nécessaire auparavant.

J’en ai déjà parlé ici : 422 Unprocessable Content response when using ActivityPub with WP Discourse - #5 by Miasanrot

Malheureusement, la solution proposée là-bas n’a pas résolu mon problème et semble très spécifique. J’ai donc ouvert un nouveau fil de discussion. Voici les trois éléments qui m’ont été demandés de publier :

  1. Journaux de WP Discourse, y compris le fichier meta.
  2. Journaux de Discourse, en particulier le journal des erreurs.
  3. Une liste des plugins que vous utilisez dans Discourse.

Fichiers journaux de WP Discourse :
Celui-ci date d’aujourd’hui :

[2024-03-14 06:02:59] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13514,"http_code":403} 
[2024-03-14 07:14:26] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13651,"http_code":403} 
[2024-03-14 08:22:19] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13815,"http_code":403} 
[2024-03-14 08:48:21] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13638,"http_code":403} 
[2024-03-14 09:37:36] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13759,"http_code":403} 
[2024-03-14 10:55:34] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13603,"http_code":403} 
[2024-03-14 11:25:23] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13603,"http_code":403} 
[2024-03-14 12:36:28] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13944,"http_code":403} 
[2024-03-14 16:03:01] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13977,"http_code":403}

**Voici ce qui est inclus dans le fichier meta :**

### Serveur ###

WordPress - 6.4.3
PHP - 8.0.26
MySQL - 8.0.30

### Plugins actifs ###

Admin Columns for ACF Fields - 0.3.1
Akismet Anti-spam: Spam Protection - 5.3.1
Borlabs Cookie - Cookie Opt-in - 2.2.67
Contact Form 7 - 5.8.6
Genesis Blocks - 3.1.1
LightStart - Maintenance Mode, Coming Soon and Landing Page Builder - 2.6.9
Podigee Wordpress Quick Publish – now with Gutenberg support! - 1.3.5
Proxy Real IP - 1.1
Shariff Wrapper - 4.6.9
TablePress - 2.2.5
TablePress Extension: Responsive Tables - 1.1
Theme Test Drive - 2.9.1
User Role Editor - 4.64.1
WP-Discourse - 2.5.1
WP Import Export - 3.9.26

### Paramètres WP Discourse (Secrets exclus) ###

display-subcategories - 0
allow-tags - 0
max-tags - 5
publish-as-unlisted - 0
full-post-content - 0
custom-excerpt-length - 50
add-featured-link - 0
auto-publish - 1
force-publish - 0
force-publish-max-age - 5
publish-failure-notice - 1
auto-track - 1
allowed_post_types - post
exclude_tags - 
hide-discourse-name-field - 0
discourse-username-editable - 1
direct-db-publication-flags - 0
verbose-publication-logs - 0
enable-discourse-comments - 1
comment-type - display-comments
ajax-load - 1
load-comment-css - 1
discourse-new-tab - 1
hide-wordpress-comments - 1
show-existing-comments - 1
max-comments - 50
min-replies - 1
min-score - 0
min-trust-level - 0
bypass-trust-level-score - 50
only-show-moderator-liked - 0
custom-datetime-format - 
cache-html - 1
clear-cached-comment-html - 0
verbose-comment-logs - 0
use-discourse-webhook - 1
webhook-match-old-topics - 0
use-discourse-user-webhook - 0
webhook-match-user-email - 0
enable-sso - 0
auto-create-sso-user - 0
real-name-as-discourse-name - 0
force-avatar-update - 0
redirect-without-login - 0
sso-client-enabled - 0
sso-client-login-form-change - 0
sso-client-sync-by-email - 0
sso-client-sync-logout - 0
logs-enabled - 1

Je ne sais pas comment télécharger ou copier quelque chose du protocole d’erreur de discourse, mais voici une capture d’écran d’aujourd’hui. 16h06 est presque l’heure à laquelle notre dernier article a été publié (16h11)

Liste des plugins dans discourse :

Chat (désactivé), Data Explorer, Footnote, Spoiler Alert

Si je dois ajouter quelque chose, faites-le moi savoir. Merci d’avance pour votre aide.

Salut @Miasanrot merci pour tous ces détails, c’est très apprécié !

La première chose à examiner ici est l’erreur de synchronisation des commentaires 403 dans les journaux, qui semble liée à votre problème de non-visualisation des commentaires. Une erreur 403 signifie que WP Discourse n’est pas en mesure d’accéder à Discourse, probablement en raison d’un échec d’autorisation.

  1. Dans l’onglet “Connection” du panneau d’administration de WP Discourse, voyez-vous un message indiquant “You are connected to Discourse!” ?

  2. Comme vous utilisez le plugin Wordpress “Proxy Real IP - 1.1”, je suis curieux de connaître l’environnement réseau de votre Wordpress et de Discourse. Quel rôle joue ce plugin ?

Merci pour la réponse rapide ! J’apprécie également.

Oui, cela montre que je suis connecté. Et il semble également créer quelque chose lorsque je publie un article. Dans WP, je vois parfois l’erreur que l’article est déjà intégré (je pense que c’est le même problème que l’utilisateur avait dans le fil que j’ai lié). Je pense donc aussi qu’il doit y avoir une connexion (et cela s’affiche dans le panneau d’administration, comme je l’ai écrit).

Le 2ème est un peu plus difficile. J’ai repris ce blog en janvier et je n’ai donc pas tout configuré moi-même. Mais j’ai posé des questions à l’administrateur précédent sur ce plugin et je reviendrai vers vous dès que j’aurai une réponse.

Edit : Le plugin peut être désactivé, a-t-il dit. Je pourrais donc essayer cela dans la prochaine étape ?

Malheureusement, aucune solution jusqu’à présent. La désactivation du plugin mentionné ci-dessus n’a pas aidé.

Mes excuses Justin, j’ai perdu de vue ce sujet. Le problème est très probablement lié à votre configuration Wordpress.

(l’emphase est de moi)

Quand ont-ils cessé de fonctionner ? Pouvez-vous identifier quelque chose qui a changé dans Wordpress lorsque les commentaires ont cessé de fonctionner ? Avez-vous

  1. Mis à jour Wordpress ?
  2. Mis à jour le plugin ?
  3. Changé (ou mis à jour) votre thème ?

Salut Justin, je voulais juste prendre des nouvelles. Comment ça avance de ton côté sur ce problème ?

Merci d’avoir pris des nouvelles !

Difficile à dire, mais je pense que la mise à jour de WordPress (et de PHP, tous deux le même jour) pourrait être le moment où tout s’est passé. Au moins, j’ai vu ce problème pour la première fois après cela. J’utilise l’avant-dernière version de WordPress (je pense que dans les derniers jours, 6.5 a été publiée, pas encore installée) et PHP 7.4 si je suis correctement informé.

Le plugin Discourse fonctionne sur la version 2.5.1.

Savez-vous de quelle version de WordPress vous avez mis à niveau ? Combien de temps s’est-il écoulé entre les mises à niveau ? Avez-vous également mis à jour votre thème en même temps ? Votre thème est-il un « thème de bloc » ?

J’espère pouvoir y répondre sans malentendus ni informations erronées. J’ai repris ce blog en janvier et la version de WP était assez ancienne. Je suppose que c’était la 5.x, je ne peux pas vous donner le numéro exact. Il s’est écoulé un temps considérable entre les deux mises à jour. Notre thème est toujours le même, c’est un thème personnalisé qui a été conçu et codé pour notre page. Je savais que cela pourrait causer des problèmes lors de la mise à jour de la page, surtout que je n’ai pas de compétences en codage, mais tout semblait bien se passer jusqu’à ce que je remarque ce problème de discourse.

Désolé si je ne peux pas vous donner plus d’informations détaillées à ce sujet, je fais de mon mieux :smiley:
Merci encore pour votre patience et votre aide.

Je vois. C’est une mise à niveau importante (c’est-à-dire de Wordpress 5.x à 6.x). Serait-il possible de tester cela avec un thème Wordpress par défaut (n’importe quel thème Wordpress par défaut) et de voir si vous rencontrez le même problème ? Je sais que c’est un peu compliqué, cependant c’est le coupable le plus probable ici (c’est-à-dire votre thème). Vous devrez peut-être passer à un bloc de commentaires

Cela devrait être possible. Je publierai un article plus tard dans la journée et je pourrai passer à un thème wp peu avant et voir si cela fonctionne.

Oh et juste un ajout @angus : Qu’est-ce qu’un thème de blocs exactement ? J’ai l’éditeur de blocs dans WP pour des choses comme les pages et les articles, mais si un thème de blocs signifie que je peux simplement ajouter des blocs pour concevoir la page comme je le souhaite, alors ce n’est pas un thème de blocs. Juste pour clarifier.

1 « J'aime »

J’ai donc basculé vers le thème WordPress Twenty Twenty-Three, puis j’ai publié mon article. Comme toujours, cela a créé un fil de discussion dans mon discourse, mais comme d’habitude, il n’était pas connecté à la section des commentaires du blog et j’ai dû le faire manuellement.

Je vois. Quelque chose sur votre site empêche le plugin de fonctionner correctement. Si ce n’est pas le thème, la prochaine étape consiste à examiner les autres plugins que vous avez installés.

Sans avoir plus d’informations sur votre site, la seule chose que je puisse vous conseiller est que vous devrez les désactiver un par un et voir si cela modifie le comportement. Il est possible que l’un d’eux ne soit pas compatible avec la version actuelle de WordPress et/ou PHP 8.x (le plugin WP Discourse l’est avec les deux).

Encore une fois, ce n’est peut-être pas ce que vous vouliez entendre, mais avec un système “pluggable” comme WordPress, ces choses (c’est-à-dire les conflits de plugins) sont des sources d’erreurs possibles. À ce stade, il vaut la peine d’essayer d’éliminer cette source.

1 « J'aime »

Est-il possible que la mise en cache de choses en combinaison avec le thème y soit pour quelque chose ? Je n’y connais rien, mais parfois de petites choses n’apparaissent pas sur la page et après avoir vidé le cache, cela refonctionne. Par exemple : Hier, j’ai lié un article manuellement et les commentaires n’apparaissaient toujours pas sur la page. Vider le cache a aidé.

Aujourd’hui, j’ai publié un article et il a automatiquement été lié à Discourse comme il se doit. Mais les commentaires n’apparaissaient pas. J’ai donc à nouveau vidé le cache et ils étaient là. Ce n’est pas facile pour moi de comprendre cela, mais quelque chose ne va pas.

Oui, la mise en cache pourrait jouer un rôle dans votre problème. Essayez d’utiliser le paramètre « Charger les commentaires avec Ajax » dans l’onglet « Commentaires » des paramètres de WP Discourse.

Quelle solution de mise en cache utilisez-vous ?

L’option a été activée.

J’utilise WP Rocket pour la mise en cache, mais je l’ai installé après avoir constaté certains problèmes. Ces problèmes semblaient résolus. Mais je ne peux pas vraiment vous dire exactement comment la mise en cache fonctionnait auparavant. Je sais qu’il y avait une mise en cache, mais je ne connais pas la solution concrète. Lorsque j’ai repris le blog, j’ai ressenti un certain ralentissement dans le chargement des images. Après avoir utilisé WP Rocket, cela semble aller mieux depuis un ou deux mois maintenant. (Le problème des commentaires était déjà présent avant que je ne l’installe)

Mais dans de rares cas, nous avons le problème que quelque chose s’affiche mal sur la page. La semaine dernière, les commentaires étaient manquants après les avoir connectés manuellement à discourse. J’ai donc vidé le cache avec WP rocket et cela a de nouveau fonctionné.

Il semble que j’aie le même problème ou un problème similaire avec les erreurs 422. J’ai déjà parlé avec @angus pour lui dire que je mettrai en place un environnement de test (WP et Discourse) pour les tests, j’espère ce week-end…

2 « J'aime »

WP Rocket peut être un vrai casse-tête. Il génère une copie statique de votre contenu, mais essaie de laisser intactes les parties qui devraient être dynamiques, ou qui ne devraient être statiques que très peu de temps. Si vous avez la chance de trouver une règle qui désactive la mise en cache de manière fiable sur les commentaires, cela fonctionne — mais vous commencez à perdre les avantages que vous aviez.

En matière de mise en cache, WordPress est… pas exactement un cauchemar, mais presque. J’ai abandonné WP Rocket car il nécessitait trop de surveillance et de mon temps, et fonctionne mieux avec des TTL assez courts. J’ai obtenu de meilleurs résultats en utilisant d’autres outils (et alors il faut être très réaliste : y a-t-il des points solides pour essayer de gagner une seconde si cela me demande plusieurs heures de travail et presque chaque semaine ; désactiver les plugins inutiles et choisir le bon thème est une meilleure option).

La plupart des sites n’ont en fait pas besoin de commentaires car ils en reçoivent assez rarement et alors Discourse en tant que section de commentaires sert à d’autres fins. Mais bien sûr, cela dépend.

Pour moi, la connexion à Discourse agit comme une publicité. Mais la plupart de mes visiteurs utilisent des téléphones et ne font presque jamais défiler assez bas — un point d’interrogation totalement identique à celui des barres latérales.

1 « J'aime »

Et quels outils ? Encore une fois : je ne suis pas très habitué à toutes ces choses techniques, c’est pourquoi je suis ici et j’essaie de voir s’il y a une aide pour le problème. Le problème était là avant que j’installe WP Rocket et il a résolu certains autres types de problèmes, mais si cet outil est d’une manière ou d’une autre problématique, je suis ouvert à d’autres solutions.

Nous avons jusqu’à 100 ou 200 commentaires sous nos articles (en discourse pour être précis), il est donc juste de dire que nous voulons qu’ils soient intégrés même si un utilisateur qui veut juste lire l’article ne fera pas défiler vers le bas.

Hors sujet sur ce forum, car cela concerne l’optimisation de WordPress. Essayez Facebook, quelque chose comme l’accélération de WordPress.

Mais vous pourriez être intéressé par des plugins comme Asset CleanUp, EWWW Image Optimizer ou même Redis, si vous avez beaucoup d’utilisateurs simultanés. Vous devriez au moins utiliser des outils de Nginx pour éliminer autant de trafic de bots que possible. Mais aucun de ces outils n’aide beaucoup si les vrais goulots d’étranglement sont le thème et des tonnes de plugins différents. Et la mauvaise nouvelle est que vous devez nettoyer la base de données elle-même de temps en temps.

Mais si WP Rocket aide, c’est bien. Mais n’utilisez pas des temps de cache trop longs. Et vous devez exclure Discourse du cache.