Das WP Discourse-Plugin ermöglicht die Einrichtung von DiscourseConnect in WordPress, sodass Ihre Benutzer ihr WordPress-Konto zur Anmeldung bei Discourse oder ihr Discourse-Konto zur Anmeldung bei WordPress nutzen können. Bevor Sie DiscourseConnect einrichten können, müssen Sie zunächst das WP Discourse-Plugin in WordPress installieren und mit Ihrem Discourse verbinden. Wenn Sie bereit sind zu beginnen, schauen Sie sich zunächst dieses kurze Video an oder folgen Sie den nachstehenden Anweisungen.
Nächster Schritt
Sobald Sie DiscourseConnect eingerichtet haben, möchten Sie möglicherweise die folgenden Themen durchgehen:
- Veröffentlichen von WordPress-Beiträgen auf Discourse
- Verwendung von Discourse für WordPress-Kommentare
Anweisungen
Festlegen eines geheimen Schlüssels
Egal, ob Sie WP Discourse als DiscourseConnect-Anbieter oder -Client einrichten, Sie müssen einen geheimen Schlüssel festlegen. Gehen Sie zum Reiter „DiscourseConnect-geheimer Schlüssel“ und geben Sie einen Textstring ein (Zahlen, Buchstaben und Symbole sind erlaubt), der mindestens 10 Zeichen lang ist. Beachten Sie bei der Erstellung dieselben Regeln wie für ein starkes Passwort. Stellen Sie sicher, dass Sie ihn nach dem Festlegen speichern.
Öffnen Sie dann Ihre Discourse-Site-Einstellungen (im Admin-Bereich) und suchen Sie nach „discourse connect“. Eine der Einstellungen ganz oben lautet „discourse connect secret“. Fügen Sie dort den geheimen Schlüssel ein, den Sie in WP Discourse festgelegt haben, und klicken Sie auf das grüne Häkchen.
Anmelden bei Discourse mit WordPress (DiscourseConnect-Anbieter)
Stellen Sie sicher, dass Ihr WP Discourse mit Ihrem Discourse verbunden ist und Ihr geheimer Schlüssel festgelegt ist (
), bevor Sie diese Anweisungen befolgen.
Damit Ihre Benutzer sich mit ihren WordPress-Account-Daten bei Discourse anmelden können, müssen Sie WP Discourse als DiscourseConnect-Anbieter einrichten. Gehen Sie zum Reiter „DiscourseConnect-Anbieter“ in den WP Discourse-Einstellungen, aktivieren Sie das Kontrollkästchen „DiscourseConnect-Anbieter aktivieren“ und speichern Sie Ihre Einstellungen.
Gehen Sie anschließend zu Ihren Discourse-Site-Einstellungen und geben Sie „discourse connect“ in das Suchfeld ein, um alle Discourse-DiscourseConnect-Einstellungen anzuzeigen. Stellen Sie zunächst die „discourse connect url“ auf die URL Ihrer WordPress-Site ein. Der letzte Schritt besteht darin, „enable discourse connect“ zu aktivieren. Stellen Sie sicher, dass Sie bereit sind, bevor Sie dies auswählen, da Ihre Benutzer nach der Aktivierung nur noch über WordPress bei Discourse anmelden können.
Sobald Sie Discourse Connect in Discourse aktiviert haben, öffnen Sie zum Testen der korrekten Einrichtung ein Inkognito-Fenster in Ihrem Browser. Lassen Sie Ihr normales (nicht-Inkognito-)Browserfenster mit einem Admin-Konto angemeldet (falls etwas schiefgeht und Sie die Einstellungen zurücksetzen müssen). Im Inkognito-Fenster werden Sie feststellen, dass der Discourse-Button „Registrieren“ nicht mehr angezeigt wird. Klicken Sie auf den Button „Anmelden“. Sie sollten einen WordPress-Anmeldebildschirm sehen. Geben Sie Ihre WordPress-Anmeldedaten ein, um sich anzumelden. Anschließend sollten Sie zurück zu Discourse weitergeleitet und angemeldet werden.
Falls etwas schiefgeht oder Sie feststellen, dass etwas nicht ganz richtig ist, kehren Sie zu Ihrem normalen Browserfenster zurück und deaktivieren Sie „enable discourse connect“, damit Ihre Benutzer sich normal bei Discourse anmelden können. Falls Sie aus irgendeinem Grund nicht mehr in Ihrem normalen Browserfenster bei Ihrem Admin-Konto angemeldet sind, lesen Sie den Abschnitt „DiscourseConnect über die Discourse-Konsole deaktivieren“ in der Fehlerbehebung unten, um wieder Zugriff auf Ihr Discourse zu erhalten.
E-Mail-Verifizierung
Discourse erwartet, dass alle E-Mail-Adressen von Benutzern verifiziert sind, während WordPress Benutzer nicht zur Verifizierung ihrer E-Mail-Adresse zwingt. Bei einer Standard-WordPress-Einrichtung ist es relativ einfach, die E-Mail-Adresse eines Benutzers während des Registrierungsprozesses zu verifizieren. Wenn jedoch eine Site ein Plugin verwendet, das ein Registrierungsformular auf der Vorderseite erstellt – beispielsweise das Registrierungsformular, das mit WooCommerce hinzugefügt werden kann –, kann das WP Discourse-Plugin die E-Mail-Adresse des Benutzers nicht verifizieren.
Wenn die E-Mail-Adressen in WordPress nicht verifiziert werden, müssen Benutzer vor der Anmeldung am Forum auf eine E-Mail-Verifizierungsmeldung von Discourse reagieren. Das Plugin verfügt über einige Filter, mit denen dieses Verhalten überschrieben werden kann. Schauen Sie sich den Code an, beginnend hier, für weitere Details.
Entfernen des require_activation-Flags
Wenn Sie sicher sind, dass WordPress E-Mail-Adressen authentifiziert, können Sie Discourse mitteilen, dass dies nicht erforderlich ist. Um das Flag require_activation vollständig zu entfernen, fügen Sie etwas wie Folgendes zu Ihrem WordPress hinzu (z. B. in der Datei functions.php Ihres Themes):
// Ersetzen Sie 'my_prefix' durch Ihr Site-Präfix.
add_filter( 'discourse_email_verification', 'my_prefix_discourse_email_verification' );
function my_prefix_discourse_email_verification( $require_activation ) {
return false;
}
Um das Flag require_activation für bestimmte Benutzer zu entfernen, verwenden Sie etwas wie Folgendes:
// Ersetzen Sie 'my_prefix' durch Ihr Site-Präfix.
add_filter( 'discourse_email_verification', 'my_prefix_discourse_email_verification', 10, 2 );
function my_prefix_discourse_email_verification( $require_activation, $user_id ) {
$user = get_userdata( $user_id );
if ( /* einige Bedingung, die gegen $user geprüft wird */ ) {
return true;
}
return false;
}
Userdata-Webhook
Dieser Webhook existiert aus historischen Gründen – das automatische Ausfüllen des Discourse-Namensfelds kann jetzt durch die DiscourseConnect-Anbieter-Option „Discourse-Benutzer bei Anmeldung erstellen oder synchronisieren“ erreicht werden.
Der Webhook „Benutzerdaten aktualisieren“ (im Einstellungsbereich „Webhooks“) kann verwendet werden, wenn WordPress der DiscourseConnect-Anbieter für Ihr Discourse ist. Der Webhook füllt automatisch das Discourse-Namensfeld des Benutzers in WordPress aus.
Erstellen eines DiscourseConnect-Anmeldelinks
Wenn Sie die DiscourseConnect-Anbieter-Option aktiviert haben, können Sie einen DiscourseConnect-Anmeldelink zu Ihrer WordPress-Site hinzufügen, indem Sie einen Link mit folgender Struktur erstellen:
<a href="https://discourse.example.com/session/sso?return_path=/">Community</a>
Setzen Sie den Wert von return_path auf die Seite in Ihrem Forum, auf der der Benutzer landen soll. Sie können einen SSO-Anmeldelink zu einem WordPress-Menü hinzufügen, indem Sie eine URL mit dieser Struktur als benutzerdefinierten Link im Bereich „Menüs“ des WordPress-Dashboards hinzufügen.
Anmelden bei WordPress mit Discourse (DiscourseConnect-Client)
Um Ihre Site als DiscourseConnect-Client für Discourse zu aktivieren, klicken Sie auf den Reiter „DiscourseConnect-Client“. Wählen Sie auf dieser Seite die Optionen „DiscourseConnect-Client aktivieren“ und „Anmeldelink hinzufügen“ aus.
Gehen Sie nun zu Ihrer Discourse-Admin-/Einstellungsseite und suchen Sie nach „discourse connect“, um alle DiscourseConnect-Optionen anzuzeigen.
- Wählen Sie die Einstellung „DiscourseConnect-Anbieter aktivieren“ aus.
- Kopieren Sie Ihren „DiscourseConnect-geheimen Schlüssel“ von WordPress in das Feld „secret“ der Discourse-Einstellung „discourse connect provider secrets“. Geben Sie im Feld „domain“ dieser Einstellung die Domain Ihrer WordPress-Site ein. Klicken Sie dann auf das grüne Häkchen, um Ihre Einstellungen zu speichern.
Nach Abschluss sollte die Einstellung „discourse connect provider secrets“ in Discourse wie folgt aussehen (mit der Domain, die auf Ihre WordPress-Domain eingestellt ist):
Discourse sollte nun als DiscourseConnect-Anbieter für Ihre WordPress-Site funktionieren.
Öffnen Sie Ihre WordPress-Site in einem Inkognito-Fenster in Ihrem Browser. Wenn Sie nun zur Anmeldeseite gehen, sollten Sie unter dem Anmeldeformular einen Link „Mit Discourse anmelden“ sehen. Klicken Sie darauf und Sie werden zum Discourse-Anmeldformular weitergeleitet. Melden Sie sich dort an und Sie werden zurück zur WordPress-Anmeldeseite weitergeleitet, mit einer Meldung, dass Sie Ihr Konto mit Discourse synchronisieren müssen. Befolgen Sie die Anweisungen in der Meldung, um Ihre Konten zu verknüpfen. Sie sollten nun in der Lage sein, sich über Discourse bei Ihrer WordPress-Site anzumelden.
Hinweis: Dieses Verhalten betrifft nur Benutzer, die sowohl bei WordPress als auch bei Discourse bereits Konten haben. Neue WordPress-Konten, die über Discourse-DiscourseConnect erstellt werden, können beim ersten Klicken auf den Link „Mit Discourse anmelden“ frei bei WordPress anmelden. Um Benutzern mit bestehenden Konten sowohl auf Ihrer WordPress-Site als auch auf Ihrem Discourse-Forum die Anmeldung über Discourse zu erleichtern, aktivieren Sie das Kontrollkästchen „Bestehende Benutzer per E-Mail synchronisieren“ auf dem Reiter „DiscourseConnect-Client-Optionen“.
Synchronisieren des Discourse-Abmeldens
Wenn DiscourseConnect aktiviert ist, kann die Abmeldung von Discourse mit Ihrer WordPress-Site synchronisiert werden, indem Sie die home_url Ihrer Site mit dem Abfrageparameter request=logout zur Discourse-Site-Einstellung „logout redirect“ hinzufügen. Die Einstellung befindet sich im Abschnitt „Benutzer“ der Discourse-Einstellungen unter /admin/site_settings/category/users. Hier ist ein Beispiel für eine „logout redirect“-URL:
http://example.com/?request=logout
Fehlerbehebung
Wenn Sie Probleme mit der Verwendung von WordPress als DiscourseConnect-Anbieter für Ihr Forum haben, sollten Sie zunächst Folgendes prüfen:
- Ob die DiscourseConnect-geheimen Schlüssel, die in WordPress und Discourse festgelegt sind, identisch sind.
- Ob Sie auf Ihrer WordPress-Site „DiscourseConnect-Anbieter aktivieren“ ausgewählt haben.
- Ob Sie die korrekte „discourse connect url“ in Discourse eingegeben haben.
„Anmeldefehler“ bei Verwendung von DiscourseConnect
Wenn Benutzer beim Versuch, sich bei Discourse anzumelden, die Meldung „Anmeldefehler“ erhalten, lesen Sie bitte:
Debug and fixing common DiscourseConnect issues.
Deaktivieren von DiscourseConnect
Wenn DiscourseConnect nicht funktioniert, können Sie es deaktivieren, indem Sie die Site-Einstellung „enable discourse connect“ abschalten. Falls Sie nicht mehr bei einem Admin-Konto angemeldet sind, um es abzuschalten, machen Sie sich keine Sorgen: Es gibt mehrere Möglichkeiten, wieder Zugang zu erhalten und es abzuschalten.
Anmeldung über /users/admin-login
Öffnen Sie ein neues Browserfenster und geben Sie in die Adressleiste Ihre Forum-URL gefolgt von /users/admin-login ein, z. B.
https://community.mysite.com/users/admin-login
Sie sollten ein Eingabefeld sehen, das Sie nach Ihrer Admin-E-Mail fragt. Nach dem Absenden Ihrer E-Mail erhalten Sie eine E-Mail mit einem Link, mit dem Sie sich direkt bei Ihrem Admin-Konto anmelden können. Gehen Sie dann zu Ihren Site-Einstellungen und deaktivieren Sie „enable discourse connect“, um DiscourseConnect abzuschalten.
Falls dies aus irgendeinem Grund nicht funktioniert, machen Sie sich keine Sorgen: Sie können DiscourseConnect auch über die Konsole Ihres Servers deaktivieren (
)
Deaktivieren von DiscourseConnect über die Serverkonsole
Wenn Sie nicht wissen, was die Serverkonsole ist, oder keinen Zugriff darauf haben, wenden Sie sich an Ihren Hosting-Anbieter. Nachdem Sie per SSH auf Ihren Server zugreifen, lauten die auszuführenden Befehle wie folgt:
cd /var/discourse
./launcher enter app
rails c
SiteSetting.enable_discourse_connect=false
exit
exit







