Wir nutzen Discourse anstelle von WP-Kommentaren (die Optionen „Remove WordPress Comments Template
Vielleicht kann ich hier noch etwas weiteren Kontext hinzufügen:
Wir haben einen privaten benutzerdefinierten Beitragstyp auf unserer WordPress-Website, dessen Beiträge mit Themen in einer privaten Discourse-Kategorie verknüpft sein sollen. Dieselben Benutzer, die Zugriff auf die Discourse-Kategorie haben, haben auch Zugriff auf den Beitrag in WordPress. Wir lösen dies, indem wir diese Benutzer der Rolle Editor in WordPress zuweisen, während sie in Discourse einer Gruppe angehören, die ihnen Zugriff auf die private Kategorie gewährt.
Unangemeldete Benutzer dürfen unter keinen Umständen entweder die Beiträge in WordPress oder die Themen-Threads in Discourse sehen. Dies funktioniert wie vorgesehen durch entsprechende Zugriffssteuerungen über Rollen und Gruppen. Auf der WordPress-Seite nutzen wir, wie oben erwähnt, Toolset Access, um den Zugriff auf alle Beiträge dieses benutzerdefinierten Beitragstyps einzuschränken.
Allerdings werden private Diskussions-Threads aus Discourse über die Einbettung in WordPress öffentlich angezeigt, obwohl der eigentliche Beitragsinhalt ausgeblendet ist. Mit anderen Worten: Die eingebetteten Discourse-Kommentare werden durch die Zugriffssteuerung nicht ausgeblendet. Wir versuchen herauszufinden, was diese Ausgabe außerhalb des Kontrollmechanismus platziert und wie wir dies beheben können.
Das WP Discourse-Plugin zeigt Kommentare an, indem es eine benutzerdefinierte Kommentartemplate lädt. Es verwendet den WordPress-Filter comments_template, um das benutzerdefinierte Template zu laden. Ich bin mir nicht sicher, warum die Kommentare trotzdem geladen werden, obwohl Toolset Access Control für eine Beitragsart konfiguriert ist. Ich werde mir ansehen, was hier genau passiert.
Ich denke, das Plugin sollte eine Option hinzufügen, um Kommentare für Beiträge nicht zu laden, die in eine private Discourse-Kategorie veröffentlicht wurden. Wenn diese Option aktiviert ist, würde nur ein Link zum Discourse-Thema angezeigt werden. Ich bin mir jedoch nicht sicher, ob dies das von Ihnen beschriebene Problem lösen würde.
Hallo Simon, ich arbeite mit @Kayla an diesem Thema. Das, was du hier beschreibst, würde unser Problem lösen.
Es wäre dennoch hilfreich zu wissen, wie man die Discourse-Kommentar-Vorlage in unsere granulare Zugriffskontrolle integrieren kann. Vielen Dank!
Super! Ich denke nicht, dass es ein Problem sein wird, das in das nächste Update des Plugins aufzunehmen. Ich werde versuchen, das bis Ende der Woche fertigzustellen. Ich halte dich über den Fortschritt auf dem Laufenden.
Ich glaube, das Problem, auf das du stößt, hängt mit der Priorität zusammen, mit der WP Discourse in den WordPress-Filter-Hook comments_template eingreift. Das WP Discourse-Plugin verwendet eine Priorität von 20 für den Aufruf der Funktion, die diesen Filter hookt. Das Toolset-Plugin greift wahrscheinlich mit einer niedrigeren Priorität in diesen Filter ein, um zu verhindern, dass die Kommentartemplate für geschützte Seiten geladen wird.
Ich habe mich bezüglich dieses Punkts mit Toolset in Verbindung gesetzt und habe mich bezüglich des erwarteten Verhaltens geirrt. Das Toolset Access-Plugin greift überhaupt nicht in die Kommentarschablone ein. Um Kommentare bei eingeschränktem Inhalt auszublenden, ist benutzerdefinierter Code erforderlich, der in ihren Filter toolset_access_api_get_post_permissions eingreift, um die Darstellung der Kommentarschablone auf Theme-Ebene zu unterdrücken bzw. zuzulassen. Es tut mir leid, dass mir nicht klar war, dass ihre Inhaltseinschränkung sich buchstäblich auf die Inhaltsschablone selbst bezieht. ![]()
Diese Option wurde in Version 2.0.7 zum Plugin hinzugefügt. Sie ist jetzt im WordPress-Repository verfügbar.
Wenn Sie die Plugin-Option „Discourse-Kommentare aktivieren
Die Änderungen, die ich mit diesem Update sehe, sind: Während discourse_replies_html wie erwartet lädt und angezeigt wird, scheint discourse_no_replies_html nicht geladen zu werden (ich sehe den Textlink „Join Discussion Link: no Comments“, aber nicht unsere Vorlage). Außerdem erscheint bei Beiträgen, die noch nicht in Discourse veröffentlicht wurden, eine neue Meldung: „Comments are not currently available for this post.“ Dabei handelt es sich um öffentliche Beiträge in öffentlichen Discourse-Kategorien.
Bei Beiträgen, die in eine private Discourse-Kategorie veröffentlicht wurden, scheint das Standard-WP-Kommentarformular geladen zu werden. Es gibt keinen Link zum Discourse-Thema.
„Display comments for public topics“ ist aktiviert, ebenso wie „Display Subcategories“. Ich habe „Clear Cached Comment HTML“ und „Force Category Update“ ausgeführt. Übersehe ich etwas?
[quote=“Kayla, Beitrag: 8, Thema: 157969”]
Wenn der Beitrag noch nicht in Discourse veröffentlicht wurde, erscheint eine neue Meldung: „Kommentare sind für diesen Beitrag derzeit nicht verfügbar.
Das ist es, was ich sehe, wenn ich die Option „Kommentare für öffentliche Themen anzeigen
Wir sind bei Version 2.1.1 mit WP 5.5. Das Kommentarcaching ist nicht aktiviert, und wir verwenden keine WP-Kommentare (aber jetzt wird das Standardformular nicht mehr geladen, was gut ist).
Manchmal werden jedoch die benutzerdefinierten Vorlagen geladen und manchmal nicht. Wir haben zurückgesetzt, um Kommentare für alle Beiträge anzuzeigen, unabhängig davon, ob das Discourse-Thema privat ist oder nicht, aber das hat nicht geholfen. Ich kann den Grund nicht herausfinden, aber es scheint bei den einzelnen Beiträgen beharrlich zu sein. Beispiele für öffentliche Beiträge in öffentlichen Themen:
Keine Kommentare, discourse_no_replies_html wird nicht geladen:
Keine Kommentare, discourse_no_replies_html wird geladen:
Hat Kommentare, discourse_replies_html wird nicht geladen:
Hat Kommentare, discourse_replies_html wird geladen:
Es ist möglich, dass das Problem mit den benutzerdefinierten Vorlagen zusammenhängt, aber es gibt einen weiteren Bericht über ein Problem, bei dem die Kommentavorlage nicht geladen wird und stattdessen der Kommentarlink angezeigt wird. Ich kann das Problem auf meiner Entwicklungsumgebung nicht reproduzieren, werde aber eine kleine Änderung am Plugin vornehmen, die das Problem beheben sollte. Das wird bis morgen früh fertig sein. Vielen Dank für eure Geduld dabei!
Könntest du versuchen, das Plugin auf Version 2.1.2 zu aktualisieren und mir mitteilen, ob das Problem damit behoben ist?
Ich kann bestätigen, dass das Update auf 2.1.2 das Problem mit dem Laden der Vorlage für uns behoben hat. Vielen Dank!