Une idée pour des commentaires plus économiques ?

Actuellement, le lien entre WordPress et Discourse fonctionne de telle sorte que chaque article est automatiquement transféré vers Discourse en tant que caché. Donc, même ceux pour lesquels aucune discussion n’est en cours.

Ce qui est très gourmand en ressources, car WordPress crée de nombreux sujets « vides ».

Quelqu’un peut-il penser à une solution pour que seuls les articles où une discussion a commencé soient transférés de WP vers Discourse ?

Salut @Petr_Mišák,

Pour ce faire, vous devriez importer les commentaires créés sur WordPress comme des articles dans Discourse. Ce n’est pas possible avec le plugin WP Discourse et il est peu probable que cela soit pris en charge dans un avenir proche. Pour des réflexions plus générales à ce sujet, voir :

Cela dit, il me vient à l’esprit qu’une fois que nous aurons ajouté la possibilité pour les acteurs de catégories Discourse de suivre d’autres acteurs ActivityPub au plugin ActivityPub (sur lequel je travaille actuellement), vous pourriez peut-être configurer le plugin WordPress ActivityPub d’une manière ou d’une autre pour y parvenir. Bien que cela soit assez spéculatif.

J’aimerais aussi comprendre un peu mieux pourquoi vous considérez cela comme « gourmand en ressources ». Si vous publiez beaucoup d’articles qui n’obtiennent pas d’engagement, envisagez peut-être de publier un sous-ensemble de vos articles sur votre forum qui sont plus susceptibles d’obtenir de l’engagement ? Inversement, le fait d’avoir beaucoup de sujets intégrés sans réponses nuit-il à votre communauté d’une manière que vous avez observée ? Y a-t-il peut-être quelque chose que vous pouvez faire pour résoudre le problème sous-jacent, pour ainsi dire ?

1 « J'aime »

Pour le contexte, je suppose que vous avez un site WordPress populaire avec beaucoup de publications, et que vous avez récemment créé un forum Discourse et ajouté le plugin Discourse WordPress à votre site web.

Combien de publications y a-t-il sur votre site WordPress ? Les anciennes publications reçoivent-elles souvent des commentaires, ou les gens commentent-ils généralement seulement les nouvelles publications ?

En termes de solutions au problème, envisageriez-vous une solution qui nécessiterait l’ajout de code personnalisé au site WordPress, ou êtes-vous seulement intéressé par des moyens de le faire sans code personnalisé ?

Si les publications sur le site ne reçoivent normalement des commentaires que pendant une courte période après leur publication, la solution la plus simple serait de commencer à publier les publications les plus récentes du site sur Discourse.

La chose la plus simple à faire ensuite serait d’ajouter un plugin à votre site qui modifierait le lien “Démarrer la discussion” de WP Discourse, de sorte qu’au lieu d’être un lien vers le sujet Discourse, ce serait un lien qui déclencherait le plugin WP Discourse pour publier la publication sur Discourse. La partie la plus délicate de la mise en œuvre serait de déterminer comment gérer le cas de l’utilisateur qui clique pour la première fois sur le lien “Démarrer la discussion” - devrait-il être automatiquement redirigé vers le sujet une fois qu’il a été publié, que verra-t-il pendant que le sujet est publié, etc.

Une autre solution possible qui ne nécessiterait pas de plugin WordPress personnalisé, mais qui nécessiterait un temps de développement potentiellement coûteux, serait de demander à quelqu’un d’écrire un script d’importation qui importerait toutes les publications, commentaires et utilisateurs existants de votre site vers Discourse. Cela résoudrait le problème des sujets vides. Si cette approche était adoptée, il pourrait être intéressant d’envisager d’utiliser votre site WordPress comme fournisseur DiscourseConnect pour votre site Discourse. Cela faciliterait l’accès des utilisateurs importés à Discourse.

2 « J'aime »

Les sujets vides ne consomment pas beaucoup de ressources. Parlez-vous de dizaines ou de centaines de milliers ?

1 « J'aime »

Il est possible que ce soit simplement une erreur de traduction de ma part, mais je ne souhaite pas publier de commentaires WordPress dans Discourse, mais seulement dans Discourse pour discuter des sujets des articles dans WordPress.

Pour ce faire, j’ai besoin que le plugin WordPress insère un sujet caché dans Discourse pour chaque article publié, après sa publication.

Cela me dérange énormément que le lien entre l’article WordPress et les commentaires dans Discourse soit créé au moment de la publication de l’article, et non lorsque quelqu’un exprime son intérêt à discuter du sujet.

Étant donné que seulement 10 % de tous les articles font l’objet de commentaires, mais que le plugin WordPress crée un lien dans Discourse pour chaque article publié. Ainsi, 90 % des liens ainsi créés restent cachés et n’utilisent que des ressources inutilement.

Nous publions environ 13 articles par jour. Donc 13*365=4 745 articles par an. Et sur ces 4 270 seront configurés comme des sujets cachés dans le système Discourse et n’auront jamais de commentaire ajouté. Cela fait 42 700 sujets indésirables en 10 ans.

La solution serait que le sujet caché dans Discourse ne soit pas créé lors de la publication de l’article dans WordPress, mais que le sujet n’arrive que lorsque quelqu’un dans WordPress, sous l’article, montre un intérêt à commenter.

Il n’y aurait donc pas besoin de créer des fils de discussion cachés et inutilisés dans Discourse.

C’est exactement comme vous le dites, nous avons un site WordPress très visité, mais nous déplaçons entièrement les comptes utilisateurs, les connexions, les commentaires d’articles vers Discourse. WordPress ne deviendra qu’un « client DiscourseConnect ».

Nous publions environ 13 articles par jour :slight_smile:

Les gens commentent généralement les nouveaux articles, mais il n’est pas rare qu’une discussion se développe sur un ancien article. Nous essayons de mettre à jour les articles plusieurs fois après leur publication. Et l’ajout de nouvelles informations à un article peut relancer la discussion.

Nous serions heureux d’ajouter un morceau de code à WordPress.

En utilisant le plugin WordPress actuel pour Discourse, nous prévoyons de ne transférer vers Discourse que les nouveaux articles publiés depuis le 11/01/2023, mais cela créera des milliers de sujets inutilisés dans Discourse. De plus, si quelqu’un souhaite commenter un article de 2015, il n’aura aucun moyen de le faire car le sujet n’existera pas dans Discourse.

Ce serait formidable si le sujet était créé uniquement lorsque l’utilisateur clique sur « démarrer une discussion sous l’article ».

Comment j’imagine le processus global ? Je vais donner un exemple illustratif et fictif.

  • Dans WordPress, nous avons un brouillon d’article, par exemple www.SvetAndroida.cz/android-telefony-2023
  • nous publierons l’article
  • rien ne sera encore transféré à Discourse

Ensuite, quelqu’un clique sur le bouton « Démarrer une discussion » sous l’article WordPress

  • à ce moment-là, WordPress appelle Discourse pour créer un sujet avec l’adresse komunita.SvetAndroida.cz/android-telefony-2023
  • et après sa création, il redirige l’utilisateur vers Discourse pour qu’il poste le premier commentaire

Si quelqu’un sur le même article WordPress souhaite « ajouter un commentaire » (un autre commentaire)

  • il n’appellera plus Discourse et ne créera plus de sujet
  • mais l’utilisateur sera dirigé directement vers Discourse lorsque le bouton sera cliqué
  • alternativement, le bouton « ajouter un commentaire » n’a plus besoin d’être géré par JavaScript, mais comme le sujet existe déjà, le bouton pourrait simplement être un lien HTML, ce qui serait mieux du point de vue du SEO

L’utilisation de JavaScript ne créerait un nouveau sujet dans Discourse que si quelqu’un cliquait sur « Démarrer la discussion » et souhaitait ajouter le premier commentaire.

Nous pouvons probablement réaliser l’ensemble de la solution nous-mêmes, mais nous manquons actuellement de programmeurs WordPress. De plus, ce serait formidable si cette fonctionnalité était incluse directement dans le plugin Discourse officiel.

2 « J'aime »

Dans notre cas, il s’agirait d’environ 50 000 sujets en 10 ans

Ce n’est pas très grave, mais vous pourriez purger ceux qui datent de quelques années une fois par an.

Le nettoyer aurait du sens, mais nous essayons de mettre à jour les anciens articles et d’activer la discussion après un certain temps de publication. Donc, la suppression n’est pas une solution idéale dans notre cas. …

Tout cela est logique, en particulier pour traiter les articles déjà publiés. Ma seule préoccupation est qu’en vous appuyant sur du code personnalisé, vous ajouterez une certaine complexité à votre intégration WordPress/Discourse. Je pense que cela devrait aller cependant. Assurez-vous que vos développeurs utilisent les hooks d’action et de filtre du plugin WP Discourse et qu’ils ne modifient pas le code du plugin principal. Ils devront trouver comment appeler la méthode publique sync_to_discourse lorsque le lien « démarrer une discussion » est cliqué : wp-discourse/lib/sso-client/sso-client-base.php at main · discourse/wp-discourse · GitHub. En publiant par cette méthode, toutes les métadonnées appropriées seront ajoutées à l’article WordPress.

C’est excellent ! Il pourrait être intéressant de regarder ce site Discourse : boing - Boing Boing BBS. Ils utilisent le plugin WordPress pour publier un nombre similaire d’articles sur Discourse. Dans leur cas, ils publient automatiquement tous les nouveaux articles sur Discourse. Ils n’ont pas publié d’articles sur Discourse qui ont été créés sur WordPress avant la mise en place d’un site Discourse.

2 « J'aime »

Existe-t-il un endroit approprié sur ce forum où je pourrais trouver un développeur pour modifier le plugin WordPress pour Discourse comme décrit ci-dessus ?

1 « J'aime »

Merci, vous avez été très rapide. Je cherchais à l’origine dans les catégories mais je n’ai pas pu le trouver là. Ce qui m’a surpris. Mais la recherche a aidé.

Merci pour votre réponse détaillée Petr, cependant je suis un peu confus.

Comment quelqu’un exprimerait-il son intérêt à discuter d’un article si vous ne voulez pas de commentaires WordPress et qu’il n’y a pas déjà de sujet pour cela dans Discourse ?

*éditer Ah je vois que vous avez présenté une expérience utilisateur (UX)

Oui, c’est tout à fait réalisable.

En y réfléchissant maintenant, je pense que c’est peut-être une petite lacune du plugin que nous n’ayons pas de moyen plus simple de le faire. Je pense qu’il serait logique d’ajouter une fonction utilitaire ainsi qu’un shortcode et un bloc qui s’y connectent. Je vais étudier cela pour la version après la version actuelle.

4 « J'aime »

Excellente idée d’ajouter la prise en charge du plugin officiel WordPress pour Discourse. Avez-vous une idée approximative de la version du plugin et du temps nécessaire pour obtenir cette nouvelle fonctionnalité ?

Je vais commencer à travailler sur cela la semaine prochaine pour l’ajouter dans 2.5.1 (la version après la prochaine). @Petr_Mišák Vous pourrez l’utiliser pour atteindre votre objectif.

3 « J'aime »

Génial, j’ai hâte. Nous avons déjà déployé Discourse sur le site principal https://www.svetandroida.cz/