Diese Anleitung erklärt, wie man die Einstellung „Zulässige Einbettungs-Selektoren" (allowed embed selectors) in Discourse konfiguriert. Diese Einstellung ist entscheidend, wenn Beiträge von einer externen Seite zu Discourse veröffentlicht oder Discourse-Kommentare mit JavaScript auf einer externen Seite eingebettet werden.
Erforderliche Benutzerrolle: Administrator
Für fortgeschrittene Anwendungen sind einige CSS-Kenntnisse erforderlich
Wenn Sie Beiträge von einer externen Seite zu Discourse veröffentlichen oder Discourse-Kommentare auf einer externen Seite einbetten, können Probleme auftreten, bei denen der Button „Ganzen Beitrag anzeigen" (Show Full Post) nicht den korrekten Inhalt lädt. Diese Anleitung hilft Ihnen, die Einstellung „Zulässige Einbettungs-Selektoren" zu konfigurieren, um dieses Problem zu beheben.
Das Problem verstehen
Wenn Benutzer auf den Button „Ganzen Beitrag anzeigen" klicken, lädt Discourse möglicherweise nicht den korrekten Beitragstext von Ihrer externen Seite. Hier kommt die Einstellung „Zulässige Einbettungs-Selektoren" ins Spiel.
Die Einstellung finden
Sie können die Einstellung „Zulässige Einbettungs-Selektoren" an zwei Stellen finden:
- Suchen Sie auf Ihrer Seite für Site-Einstellungen nach „allowed embed selectors".
- Navigieren Sie zu Admin > Anpassen > Einbettung und wählen Sie dann den Reiter Crawler.
Die richtigen CSS-Selektoren identifizieren
So finden Sie die passenden CSS-Selektoren:
- Gehen Sie zu einem Beitrag auf Ihrer externen Seite, den Sie zu Discourse veröffentlicht haben.
- Öffnen Sie den Web-Inspector Ihres Browsers und untersuchen Sie die HTML-Struktur des Beitrags.
- Identifizieren Sie die HTML-Elemente, die den Hauptinhalt des Beitrags unmittelbar umgeben.
Beispielsweise befindet sich bei einem typischen WordPress-Beitrag der Inhalt oft in einem div mit der Klasse .entry-content innerhalb von article-Tags. In diesem Fall könnten Sie article .entry-content als CSS-Selektor verwenden.
Konfigurieren der Einstellung
Um verschiedene Inhaltstypen von Ihrer externen Seite zu laden, müssen Sie möglicherweise mehrere Selektoren hinzufügen. Zum Beispiel:
article .entry-content img, article .entry-content p, article .entry-content ul
Dieses Beispiel zielt auf Bilder, Absätze und ungeordnete Listen innerhalb des Eintragsinhalts des Artikels ab.
Testen und Fehlerbehebung
Das Finden der richtigen Selektoren erfordert möglicherweise einige Versuche und Irrtümer. Beachten Sie Folgendes:
- Discourse zwischenspeichert Inhalte externer Beiträge für 10 Minuten, sodass Änderungen möglicherweise nicht sofort sichtbar sind.
- Um dies zu umgehen, testen Sie mit mehreren Beiträgen oder leeren Sie den Cache auf einer Entwicklungsumgebung mit
Rails.cache.clearin der Rails-Konsole.
Umgang mit Bildern
Wenn Sie Probleme beim Laden von Bildern von Ihrer Website haben, stellen Sie sicher, dass Ihre CSS-Selektoren die entsprechenden Bildelemente einschließen. Zum Beispiel:
article .entry-content img
Dieser Selektor zielt auf Bilder innerhalb des Eintragsinhalts des Artikels ab.
Weitere Überlegungen
- Die Einstellung „Zulässige Einbettungs-Selektoren" gilt sowohl für Beiträge, die über die API veröffentlicht wurden, als auch für Beiträge, die mit dem Discourse-Einbettungsskript geladen wurden.
- Sie müssen die Selektoren möglicherweise an die spezifische Struktur und die Inhaltstypen Ihrer Website anpassen.
- Denken Sie daran, Ihre Änderungen nach der Aktualisierung der Einstellung zu speichern.


