Eine Idee für kostengünstigere Kommentare?

Derzeit funktioniert die Verknüpfung von WordPress und Discourse so, dass jeder Artikel automatisch als versteckt an Discourse übertragen wird. Also auch diejenigen, bei denen keine Diskussion stattfindet.

Das ist sehr ressourcenintensiv, da WordPress viele „leere“ Themen erstellt.

Kann sich jemand eine Lösung überlegen, damit nur Artikel, bei denen eine Diskussion begonnen wurde, von WP nach Discourse übertragen werden?

Hallo @Petr_Mišák,

Dazu müssten Kommentare, die auf WordPress erstellt wurden, als Beiträge in Discourse importiert werden. Das ist mit dem WP Discourse-Plugin nicht möglich und wird wahrscheinlich auch in naher Zukunft nicht unterstützt. Weitere allgemeine Überlegungen dazu finden Sie unter

Dennoch fällt mir ein, dass Sie, sobald wir die Möglichkeit hinzufügen, dass Discourse-Kategorien andere ActivityPub-Akteure über das ActivityPub-Plugin (an dem ich gerade arbeite) verfolgen können, das WordPress ActivityPub-Plugin möglicherweise so konfigurieren könnten, um dies zu erreichen. Dies ist jedoch recht spekulativ.

Ich würde auch gerne etwas mehr darüber erfahren, warum Sie dies als „ressourcenintensiv“ betrachten. Wenn Sie viele Artikel veröffentlichen, die keine Resonanz finden, sollten Sie vielleicht in Erwägung ziehen, eine Teilmenge Ihrer Artikel in Ihrem Forum zu veröffentlichen, die eher Resonanz finden? Umgekehrt: Schadet es Ihrer Community auf eine beobachtete Weise, viele eingebettete Themen ohne Antworten zu haben? Gibt es vielleicht etwas, das Sie tun können, um das zugrunde liegende Problem sozusagen anzugehen?

1 „Gefällt mir“

Zum besseren Verständnis: Ich gehe davon aus, dass Sie eine beliebte WordPress-Website mit vielen Beiträgen haben und kürzlich ein Discourse-Forum erstellt und das Discourse WordPress-Plugin auf Ihrer Website hinzugefügt haben.

Wie viele Beiträge hat Ihre WordPress-Website? Erhalten ältere Beiträge sehr oft Kommentare, oder kommentieren die Leute normalerweise nur neuere Beiträge?

In Bezug auf Lösungen für das Problem, würden Sie eine Lösung in Betracht ziehen, die das Hinzufügen von benutzerdefiniertem Code zur WordPress-Website erfordert, oder sind Sie nur an Wegen interessiert, dies zu tun, die keinen benutzerdefinierten Code erfordern?

Wenn Beiträge auf der Website normalerweise nur für kurze Zeit nach der Veröffentlichung Kommentare erhalten, wäre die einfachste Lösung, einfach die neuesten Beiträge der Website auf Discourse zu veröffentlichen.

Das Nächstbeste wäre, ein Plugin zu Ihrer Website hinzuzufügen, das den WP Discourse “Diskussion starten”-Link modifiziert, sodass es anstelle eines Links zum Discourse-Thema ein Link ist, der das WP Discourse-Plugin auslöst, um den Beitrag auf Discourse zu veröffentlichen. Der kniffligste Teil der Implementierung wäre herauszufinden, wie der Fall des Benutzers behandelt wird, der zuerst auf den Link “Diskussion starten” klickt – sollte er automatisch zum Thema weitergeleitet werden, sobald es veröffentlicht wurde, was wird er sehen, während das Thema veröffentlicht wird, usw.

Eine weitere mögliche Lösung, die kein benutzerdefiniertes WordPress-Plugin erfordern würde, aber möglicherweise teure Entwicklerzeit erfordern würde, wäre, jemanden ein Import-Skript schreiben zu lassen, das alle vorhandenen Beiträge, Kommentare und Benutzer Ihrer Website nach Discourse importiert. Das würde das Problem leerer Themen lösen. Wenn dieser Ansatz gewählt würde, könnte es sich lohnen, Ihre WordPress-Website als DiscourseConnect-Anbieter für Ihre Discourse-Website zu verwenden. Das würde es den importierten Benutzern erleichtern, Zugang zu Discourse zu erhalten.

2 „Gefällt mir“

Leere Themen verbrauchen nicht viele Ressourcen. Sprechen Sie von Zehn- oder Hunderttausenden?

1 „Gefällt mir“

Es ist möglich, dass es sich nur um einen Übersetzungsfehler meinerseits handelt, aber ich bin nicht daran interessiert, WordPress-Kommentare in Discourse zu posten, sondern nur in Discourse, um die Artikelthemen in WordPress zu diskutieren.

Dazu benötige ich das WordPress-Plugin, um nach der Veröffentlichung jedes Artikels ein verstecktes Thema in Discourse einzufügen.

Es stört mich nur furchtbar, dass die Verknüpfung zwischen dem WordPress-Artikel und den Kommentaren in Discourse zum Zeitpunkt der Veröffentlichung des Artikels hergestellt wird und nicht, wenn jemand Interesse daran bekundet, das Thema zu diskutieren.

Da nur 10 % aller Artikel kommentiert werden, aber das WordPress-Plugin für jeden veröffentlichten Artikel einen Link in Discourse erstellt. So bleiben 90 % der auf diese Weise erstellten Links verborgen und verbrauchen nur unnötig Ressourcen.

Wir veröffentlichen etwa 13 Artikel pro Tag. Also 13*365=4.745 Artikel pro Jahr. Und von diesen 4.270 werden als versteckte Themen im Discourse-System eingerichtet und werden nie einen Kommentar erhalten. Das sind 42.700 Müll-Themen in 10 Jahren.

Die Lösung wäre, wenn das versteckte Thema in Discourse nicht bei der Veröffentlichung des Artikels in WordPress erstellt würde, sondern das Thema erst dann käme, wenn jemand in WordPress unter dem Artikel Interesse am Kommentieren zeigt.

So müssten keine versteckten und ungenutzten Threads in Discourse erstellt werden.

Es ist genau so, wie Sie sagen, wir haben eine sehr gut besuchte WordPress-Seite, aber wir verlagern Benutzerkonten, Logins und Artikelkommentare vollständig zu Discourse. WordPress wird nur zu einem „DiscourseConnect Client“.

Wir veröffentlichen etwa 13 Artikel pro Tag :slight_smile:

Die Leute kommentieren normalerweise neue Artikel, aber es ist nicht ungewöhnlich, dass sich eine Diskussion über einen älteren Artikel entwickelt. Wir versuchen, Artikel im Laufe der Zeit mehrmals zu aktualisieren, nachdem sie veröffentlicht wurden. Und neu hinzugefügte Informationen zu einem Artikel können die Diskussion neu entfachen.

Wir fügen gerne einen Code-Schnipsel zu WordPress hinzu.

Mit dem aktuellen WordPress-Plugin für Discourse planen wir, nur neue Artikel, die seit dem 11.01.2023 veröffentlicht wurden, nach Discourse zu übertragen. Dies würde jedoch Tausende von ungenutzten Themen in Discourse erstellen. Darüber hinaus, wenn jemand einen Artikel aus dem Jahr 2015 kommentieren möchte, hat er keine Möglichkeit dazu, da das Thema in Discourse nicht existiert.

Es wäre großartig, wenn das Thema nur erstellt würde, wenn der Benutzer auf „Eine Diskussion starten“ klickt.

Wie stelle ich mir den gesamten Prozess ungefähr vor? Ich gebe ein anschauliches, wenn auch fiktives Beispiel.

  • In WordPress haben wir einen Entwurf eines Artikels, zum Beispiel www.SvetAndroida.cz/android-telefony-2023
  • Wir veröffentlichen den Artikel
  • Noch wird nichts nach Discourse übertragen

Dann klickt jemand auf den Button „Eine Diskussion starten“ unter dem WordPress-Artikel

  • An diesem Punkt ruft WordPress Discourse auf, um ein Thema mit der Adresse komunita.SvetAndroida.cz/android-telefony-2023 zu erstellen
  • und nachdem es erstellt wurde, leitet es den Benutzer zu Discourse weiter, um den ersten Kommentar zu posten

Wenn jemand zum selben WordPress-Artikel einen „Kommentar hinzufügen“ möchte (einen weiteren Kommentar)

  • ruft er Discourse nicht mehr auf und erstellt kein Thema
  • aber der Benutzer wird direkt zu Discourse weitergeleitet, wenn auf den Button geklickt wird
  • alternativ muss der Button „Kommentar hinzufügen“ nicht mehr von JavaScript behandelt werden, sondern da das Thema bereits existiert, könnte der Button einfach ein HTML-Link sein, was aus SEO-Sicht besser wäre

Die Verwendung von JavaScript würde nur dann ein neues Thema in Discourse erstellen, wenn jemand auf „Diskussion starten“ klickt und den ersten Kommentar hinzufügen möchte.

Wir können die gesamte Lösung wahrscheinlich selbst umsetzen, aber wir haben derzeit einen Mangel an WordPress-Programmierern. Außerdem wäre es großartig, wenn diese Funktionalität direkt in das offizielle Discourse-Plugin aufgenommen würde.

2 „Gefällt mir“

In unserem Fall wären das etwa 50.000 Themen in 10 Jahren

Das ist keine große Sache, aber man könnte die ein paar Jahre alten einmal im Jahr löschen.

Es wäre sinnvoll, sie zu bereinigen, aber wir versuchen, alte Artikel zu aktualisieren und die Diskussion nach einiger Zeit nach der Veröffentlichung zu aktivieren. Daher ist das Löschen in unserem Fall keine ideale Lösung. …

Das ergibt alles Sinn, insbesondere für die Bearbeitung von bereits veröffentlichten Artikeln. Meine einzige Sorge ist, dass Sie durch die Abhängigkeit von benutzerdefiniertem Code einige Komplexität in Ihre WordPress/Discourse-Integration einbringen werden. Ich denke, es sollte aber in Ordnung sein. Stellen Sie sicher, dass Ihre Entwickler die Action- und Filter-Hooks des WP Discourse-Plugins verwenden und nicht den Kerncode des Plugins bearbeiten. Sie müssen herausfinden, wie die öffentliche sync_to_discourse-Methode aufgerufen wird, wenn auf den Link „Diskussion starten“ geklickt wird: wp-discourse/lib/sso-client/sso-client-base.php at main · discourse/wp-discourse · GitHub. Durch die Veröffentlichung über diese Methode werden alle entsprechenden Metadaten zum WordPress-Beitrag hinzugefügt.

Das ist großartig! Es könnte sich lohnen, sich diese Discourse-Seite anzusehen: boing - Boing Boing BBS. Sie verwenden das WordPress-Plugin, um eine ähnliche Anzahl von Artikeln in Discourse zu veröffentlichen. In ihrem Fall veröffentlichen sie automatisch alle neuen Artikel in Discourse. Sie haben keine Artikel in Discourse veröffentlicht, die in WordPress vor der Einrichtung einer Discourse-Site erstellt wurden.

2 „Gefällt mir“

Gibt es in diesem Forum einen geeigneten Ort, an dem ich einen Entwickler finden könnte, der das WordPress-Plugin für Discourse wie oben beschrieben modifiziert?

1 „Gefällt mir“

Danke, Sie waren sehr schnell. Ich habe ursprünglich in den Kategorien danach gesucht, konnte es aber dort nicht finden. Was mich überraschte. Aber die Suche hat geholfen.

Vielen Dank für deine ausführliche Antwort, Petr, aber ich bin ein wenig verwirrt.

Wie würde jemand Interesse an der Diskussion eines Artikels bekunden, wenn du keine WordPress-Kommentare möchtest und es noch kein Thema dafür in Discourse gibt?

Bearbeitung: Ah, ich sehe, du hast ein UX dargelegt

Ja, das ist durchaus machbar.

Wenn ich jetzt darüber nachdenke, glaube ich, dass es eine kleine Lücke im Plugin ist, dass wir keine einfachere Möglichkeit haben, dies zu tun. Ich denke, es ist sinnvoll, eine Hilfsfunktion und einen Shortcode und Block hinzuzufügen, der damit verbunden ist. Ich werde dies für die Veröffentlichung nach der aktuellen untersuchen.

4 „Gefällt mir“

Tolle Idee, die Unterstützung für das offizielle WordPress-Plugin für Discourse hinzuzufügen. Gibt es eine ungefähre Vorstellung, in welcher Version des Plugins und wie lange es dauern könnte, bis diese neue Funktion verfügbar ist?

Ich werde nächste Woche damit beginnen, dies für 2.5.1 (die übernächste Veröffentlichung) hinzuzufügen. @Petr_Mišák Sie können dies verwenden, um Ihr Ziel zu erreichen.

3 „Gefällt mir“

Großartig, ich freue mich darauf. Wir haben Discourse bereits auf der Hauptseite https://www.svetandroida.cz/ im Einsatz.