Configurez WP Discourse pour afficher les commentaires de Discourse

Vous pouvez utiliser Discourse comme système de commentaires pour Wordpress. Les fonctionnalités de commentaires dépendent des fonctionnalités de publication, vous devez donc configurer la publication pour que les commentaires fonctionnent. Si vous avez configuré la publication et que vous êtes prêt à configurer les commentaires, regardez cette courte vidéo ou suivez les instructions ci-dessous.

Prochaine étape

Une fois que vous avez configuré les commentaires, vous voudrez peut-être consulter les sujets suivants


Instructions

Configuration des commentaires

Pour que les commentaires Discourse s’affichent sur votre site WordPress, vous devez sélectionner le paramètre « Activer les commentaires Discourse ». Lorsqu’il est activé, vous verrez deux options. L’option « Afficher les commentaires » chargera un modèle de commentaire pour chaque article WordPress qui a été publié sur Discourse. Ce modèle affichera les commentaires Discourse sous les articles WordPress. L’option « Afficher un lien vers les commentaires » chargera un modèle de commentaires qui affiche un lien vers le sujet Discourse associé sous les articles publiés. Le nombre de réponses au sujet sera affiché dans le lien, mais aucune réponse ne sera affichée sur WordPress.

Ces deux options de commentaires fonctionnent en chargeant des modèles de commentaires pour les articles WordPress. Cela signifie qu’elles ne fonctionneront que si les commentaires sont activés pour l’article. Si vous souhaitez activer les commentaires pour tous les articles, mais ne pas afficher les commentaires WordPress historiques pour les articles qui n’ont pas été publiés sur Discourse, activez le paramètre « Supprimer le modèle de commentaires WordPress ».

Paramètres

Voici de brèves descriptions de ce que font les autres paramètres de commentaires. Si vous avez encore des doutes sur l’un des paramètres, répondez à ce sujet et demandez des éclaircissements supplémentaires.

Charger les commentaires avec Ajax

Ce paramètre est utilisé pour charger les commentaires depuis le client Wordpress, au lieu de les charger depuis le serveur. Ceci est utile si la mise en cache de la page empêche le chargement de commentaires récents sur votre site.

Charger le CSS des commentaires

Ce paramètre charge une feuille de style qui corrige les problèmes avec les onebox et les citations de Discourse lorsqu’ils sont affichés sur WordPress.

Afficher les commentaires WP existants

Sélectionnez ce paramètre pour également afficher les commentaires WordPress existants pour les articles qui ont également été publiés sur Discourse, sélectionnez le paramètre.

Titre des commentaires existants

Si vous affichez les commentaires existants, ce paramètre ajoutera un titre au-dessus des commentaires WordPress.

Paramètres d’importation sélective

Il existe un certain nombre de paramètres qui vous permettent d’importer sélectivement des commentaires. Ceux-ci devraient être explicites. Les valeurs par défaut pour chacun d’eux sont un bon point de départ, ne les modifiez donc que si vous avez une raison de le faire.

  • Nombre maximum de commentaires visibles
  • Nombre minimum de réponses
  • Score minimum des publications
  • Niveau de confiance minimum
  • Ignorer le score du niveau de confiance
  • Importer uniquement les commentaires appréciés par les modérateurs
Format personnalisé de date/heure

Ce paramètre formate la date qui est affichée pour chaque commentaire Discourse qui apparaît sur votre site WordPress. Commencez par la valeur par défaut. Si vous souhaitez modifier le format de la date, cliquez sur le lien dans la description du paramètre pour savoir comment procéder.

Mise en cache du HTML des commentaires

Ce paramètre peut être utilisé pour améliorer les performances. La mise en cache du HTML des commentaires réduit le nombre de requêtes adressées à Discourse. Son paramètre associé « Effacer le HTML des commentaires mis en cache » devrait être explicite.

Journaux de commentaires détaillés

L’activation de cette option enregistrera toutes les récupérations réussies de commentaires de Discourse, en plus des erreurs (par défaut).

Webhook de synchronisation des données de commentaires

L’activation du webhook de synchronisation des données de commentaires dans le panneau de configuration « Webhooks » peut considérablement réduire le nombre de requêtes API effectuées par WordPress vers Discourse. Avant d’activer le webhook

  1. visitez l’URL Discourse fournie dans la description du paramètre (http://forum.example.com/admin/api/web_hooks.)

  2. Cliquez sur le bouton « Nouveau webhook » et remplissez le formulaire

    • Dans le champ URL de la charge utile, entrez l’URL fournie dans la description du champ « Synchronisation des données de commentaires » de WP Discourse. Ce sera quelque chose comme ceci, en utilisant l’URL de votre site WordPress : https://wp-discourse.dev/wp-json/wp-discourse/v1/update-topic-content.

    • Assurez-vous que le champ Type de contenu est défini sur application/json.

    • Dans le champ Secret, entrez une chaîne de caractères d’au moins 12 caractères. Copiez ensuite cette même clé dans le paramètre « Clé secrète du webhook » de WP Discourse.

    • Dans la case « Quels événements doivent déclencher ce webhook ? », assurez-vous que « Événement de publication » est sélectionné.

    • Utilisez le champ Catégories déclenchées si vous ne publiez que des articles de WordPress dans des catégories spécifiques. De cette façon, votre site WordPress n’aura pas besoin de traiter les requêtes de webhook pour les sujets qui n’ont pas de publication Discourse associée.

    • Laissez activé le paramètre Vérifier le certificat TLS de l’URL de la charge utile.

    Enfin, cochez la case « Actif » et cliquez sur créer. Lorsque le webhook est enregistré, cliquez sur le bouton « Aller aux événements ».

  3. De retour sur WordPress, assurez-vous d’avoir entré le secret du webhook de Discourse dans le champ « Clé secrète du webhook » et activez le paramètre de webhook « Synchronisation des données de commentaires ». Enregistrez ensuite les options.

Le webhook Discourse devrait maintenant fonctionner. Vous devriez le vérifier en cliquant sur le bouton Ping du webhook sur Discourse (trouvé à /admin/api/web_hooks/:webhook_id/events). Assurez-vous que le ping du webhook renvoie un code d’état de 200.

Ajustement de la période de synchronisation comments_number pour les pages d’archives WordPress

Pour obtenir le nombre correct de commentaires Discourse pour un article, le plugin doit périodiquement effectuer une requête HTTP à Discourse pour obtenir le nombre actuel de commentaires. Sur les pages uniques, cette période est définie pour ne pas être plus fréquente que toutes les 10 minutes. Pour les pages d’archives, la période est définie pour ne pas être plus fréquente qu’une fois toutes les 24 heures. La raison est d’éviter de faire plusieurs requêtes à Discourse chaque fois qu’une page d’archive est accédée.

Si vous constatez toujours que le plugin effectue trop de requêtes à Discourse lors de l’affichage des pages d’archives de votre site, vous pouvez ajuster archive_page_sync_period en vous accrochant au filtre 'discourse_archive_page_sync_period'. Vous le faites en ajoutant quelque chose comme ceci au fichier functions.php de votre thème :

add_filter( 'discourse_archive_page_sync_period', 'my_namespace_archive_page_sync_period' );
function my_namespace_archive_page_sync_period( $sync_period ) {
  // Cela changera la période de synchronisation des articles archivés à une fois par semaine.
  return WEEK_IN_SECONDS;
}

Si vous constatez que le plugin n’effectue pas suffisamment de requêtes à Discourse pour récupérer le nombre actuel de commentaires pour les pages d’archives, vous pouvez ajouter quelque chose comme ceci au fichier functions.php de votre thème. Cela définira archive_page_sync_period à 10 minutes.
Remarque : sur un site très fréquenté, cela pourrait surcharger votre serveur.

add_filter( 'discourse_archive_page_sync_period', 'my_namespace_archive_page_sync_period' );
function my_namespace_archive_page_sync_period( $sync_period ) {
  // Cela changera la période de synchronisation des articles archivés à une fois par semaine.
  return 10 * MINUTE_IN_SECONDS;
}

Afficher les commentaires sans charger le modèle de commentaires WordPress

Le plugin WP Discourse utilise le modèle de commentaires WordPress pour charger les commentaires Discourse. Si votre thème ne charge pas le modèle de commentaires, vous pouvez afficher les commentaires avec la fonction d’aide statique get_discourse_comments. Cette fonction nécessite que vous fournissiez l’ID de l’article WordPress pour lequel vous souhaitez afficher les commentaires. Voici un exemple simple de son utilisation :

use WPDiscourse\\Utilities\\Utilities as DiscourseUtilities;
$discourse_comments = DiscourseUtilities::get_discourse_comments(859);
echo $discourse_comments;

Les commentaires seront affichés de la même manière qu’ils le sont si vous sélectionnez l’option Activer les commentaires Discourse/Afficher les commentaires (trouvée dans l’onglet Paramètres des commentaires du plugin). Lorsque cette fonction est utilisée, la valeur de ce paramètre est ignorée, mais tous les autres paramètres de commentaires sont respectés.

Dépannage

Le problème le plus courant avec les commentaires Discourse est qu’ils peuvent ne pas apparaître instantanément après la publication sur Discourse. Ce délai est intentionnel car le plugin essaie de réduire le nombre de requêtes qu’il doit adresser à Discourse. Effectuer une requête à chaque chargement de page ralentira votre site. Si vous ne voyez pas les commentaires apparaître instantanément, attendez 10 minutes avant de rafraîchir à nouveau la page.

Problèmes avec le nombre de commentaires lors de l’affichage des commentaires Discourse et WordPress

Le plugin wp-discourse utilise le hook de filtre WordPress get_comments_number afin que le nombre de commentaires Discourse créés pour un article puisse être affiché dans tout votre thème. Cela crée un conflit lorsque les commentaires Discourse et WordPress sont affichés pour un article. Le plugin est capable de résoudre ce conflit dans la plupart des endroits. Un endroit où il ne peut pas être résolu est dans le titre des commentaires que les thèmes WordPress affichent souvent en haut de la section des commentaires. C’est la section qui commence par quelque chose comme « 2 réflexions sur… ».

Le moyen le plus simple de le faire est d’ajouter une règle au fichier css de votre thème.

.discourse-comments-area ~ .comments-area .comments-title  {
	display: none;
}
7 « J'aime »

@angus très bon guide et vidéo, merci de l’avoir réalisé. Nous avons implémenté le plugin et sommes bloqués sur la fonctionnalité de commentaires. Nous avons deux questions/problèmes ici :

  • Lorsque nous publions une réponse sur Discourse (au post partagé depuis WordPress), nous voyons le nombre de réponses changer sur WordPress, mais nous ne voyons aucun commentaire apparaître…
  • Nous aimerions désactiver les commentaires WordPress afin que les utilisateurs ne puissent répondre que via Discourse, est-ce possible ?

Voici ce que nous voyons, ce ‘1’ réponse provient de Discourse, et vous remarquerez que la réponse elle-même n’est pas visible :

CC : @Abdelrahman_MoHamed

Salut @Jacob_Peebles,

En supposant que vous ayez suivi le guide ci-dessus, la prochaine chose à vérifier est votre thème. Utilisez-vous peut-être un thème basé sur des blocs ? Si c’est le cas, veuillez consulter :

Oui, désactivez simplement les commentaires dans WordPress.

  1. Sélectionnez Paramètres > Discussion dans le tableau de bord.
  2. Décochez la case à côté de Autoriser les commentaires sur les articles.
  3. Cliquez sur Enregistrer les modifications.
1 « J'aime »

@angus - super, ça a marché à merveille ! Oui, apparemment nous sommes sur l’éditeur ‘block’. Vous pouvez voir les choses fonctionner ici :

La seule chose étrange est que les styles/polices ne semblent pas se propager dans les commentaires du discours. Je ne suis pas sûr si c’est juste un problème avec notre thème, ou quelque chose qui mérite d’être noté.

Merci encore.

Désolé, voici aussi une capture d’écran.

Ravi que cela fonctionne pour vous, Jacob.

Vous devrez ajouter votre propre style de commentaire. Les commentaires Discourse sont intentionnellement très peu stylisés dès le départ, car chaque thème a sa propre approche en matière de style. Dans votre cas, quelques styles de base comme ceux-ci devraient suffire :

ol.comment-list {
    list-style: none;
    padding: 0;
}

img.avatar.photo.avatar-default {
    height: 40px;
    width: 40px;
}

.comment-author.vcard {
   display: flex;
   align-items: center;
   gap: 1em;
}

1 « J'aime »

Excellent @angus

Salut @angus

Merci pour l’excellent plugin et les instructions utiles !

J’ai intégré Discourse à mon site web Wordpress et il est connecté.
J’ai pu créer un article sur le site WP et voir qu’il a été importé comme nouveau Sujet dans Discourse, ce qui est super !

Cependant, il continue d’afficher uniquement le contenu initial de l’article comme extrait (hello world etc) sur Discourse, et il ne met pas à jour le contenu du sujet Discourse après l’avoir modifié sur l’article WP. Il ne reflète le changement de contenu que si vous cliquez sur ‘Afficher l’article complet’, ce qui signifie que je ne peux pas modifier le paramètre pour afficher le contenu complet de l’article et pas seulement l’extrait. Quand je fais cela, le bouton disparaît du sujet Discourse et n’affiche que le contenu initial avant la mise à jour. Je ne sais pas si je suis clair ?

Et aussi, les commentaires publiés depuis Discourse en tant que réponses au sujet n’apparaissent pas sous l’article sur WP. J’ai activé les commentaires et j’utilise le thème Astra, donc pas un éditeur de blocs. Je ne suis pas sûr de ce que je devrais faire pour résoudre ce problème.

Tout conseil sur ces 2 points serait grandement apprécié, merci !

Salut @Clo, merci d’avoir essayé le plugin. Pourriez-vous clarifier votre état idéal pour la publication ? Essayez de le présenter comme une « user story ». Concernant les commentaires, les commentaires WordPress sont-ils activés sur votre site ?

Salut @angus

Il semble que les commentaires aient finalement été transférés du site Discourse vers le site WP, cela a juste pris pas mal de temps. Merci cependant !

Cependant, je voulais aussi demander s’il était possible que le plugin crée un nouveau post dans WP chaque fois qu’un nouveau sujet est créé dans Discourse ? Ou est-ce seulement possible dans l’autre sens ?

C’est seulement possible avec des plugins personnalisés supplémentaires, côté Wordpress et côté Discourse. Le plugin WP Discourse lui-même n’est pas conçu pour cela.

Merci beaucoup, c’est utile.
Super plugin !

1 « J'aime »