evelynf
(Evelyn Fassett)
1
Wordpress で Memberpress を使用してメンバーシップサイトを運営しています。
Discourse フォーラムを作成し、wp-discourse プラグインをインストールして連携させました。
しかし、WordPress サイトからフォーラムにアクセスする一般的な方法について説明したドキュメントが見つかりません。ログイン後にフォーラムへ誘導したくありませんが、メニューにリンクを追加し、ログインしていないユーザー向けと、適切なメンバーシップレベルでログインしているユーザー向けにそれぞれ表示する文言やフォーラムへのリンクを設定できるものと推測しています。
この点についてご助言いただけますと幸いです。プラグインの各種設定を見ると、投稿が WordPress サイトに埋め込まれる可能性があるような記述がありますが、それが具体的にどのような見た目になるのかについて、明確な説明が見つかりません。
よろしくお願いいたします。
Evelyn
evelynf
(Evelyn Fassett)
3
はい
該当する部分はすべて確認しました。しかし、フォーラムをウェブサイトに接続する方法についての情報はまだ見当たりません。おそらくメニューにリンクを追加するだけなのでしょう。
Wordpress サイトをフォーラムの SSO として設定しようと試みましたが、さらにテストが必要です。フォーラムに対応するユーザー名アカウントを持つユーザーとしてフォーラムにアクセスすると、まだフォーラムへのログインを求められてしまいます。
Discourse フォーラムにリンクされたウェブサイトのサンプルが見られると助かります。
ありがとうございます!
エヴァリン
pfaffman
(Jay Pfaffman)
5
その通りです。サイト編集して、適切な場所にフォーラムへのリンクを追加するだけです。
simon
6
WordPress から Discourse に投稿を公開するプラグインを使用している場合、各 WordPress 投稿に関連する Discourse トピックへのリンクを追加できます。これを行うには、プラグインの「コメント設定」タブで「Discourse コメントを有効化」を選択してください。このオプションを選択すると、投稿の下に Discourse コメントを表示するか、単にコメントへのリンクを表示するかを選択できます。
SSO が有効になっている場合、Discourse トピックへのリンクはデフォルトで SSO ログインリンクになります。つまり、ユーザーがリンクをクリックすると、自動的に SSO ログインプロセスを経て、ログイン済みのユーザーとして Discourse トピックにリダイレクトされます。
WordPress サイトのメニューにフォーラムへのリンクを追加できます。SSO が有効になっている場合、ユーザーがリンクをクリックすると SSO ログインプロセスを経てフォーラムに誘導されるようにリンクを設定できます。リンクの構成方法の詳細については、Create a DiscourseConnect login link をご覧ください。この形式のリンクを WordPress に追加するには、メニューに「カスタムリンク」を追加する必要があります。
スクリーンショットの例では、「フォーラム」リンクをクリックするとユーザーが Discourse にログインし、フォーラムのホームページにリダイレクトされます。ユーザーをフォーラムの特定のページにリダイレクトするリンクを作成するには、URL に return_path クエリパラメータを追加します。例えば http://localhost:3000/session/sso?return_path=http://localhost:3000/c/fun のようになります。
evelynf
(Evelyn Fassett)
7
こんにちは、サイモンさん
ありがとうございます。とても参考になりました。
これについて説明しているドキュメントはありますか?
http://localhost:3000/session/sso
localhost の URL ではなく、実際の URL(サブドメイン)をフォーラムに使用したい場合でも、それは機能しますか?
WordPress の投稿から Discourse へ移動するのではなく、メンバーがフォーラムにアクセスするためのリンクを設置するだけで、その際、メンバーがログインした状態でフォーラムに到達できるようにしたいと考えています。
つまり、この場合、コメントや投稿に関する設定などは適用されないということになりますか?
当社は、会員管理プラグインを使用してフォーラムへのアクセスを保護するだけで、コメントや投稿の同期は必要ありません。
エヴリン
evelynf
(Evelyn Fassett)
8
あっ、ごめんなさい!あなたがシェアしてくれたリンクを間違えてクリックしちゃいました。読みすぎちゃいましたね 
エヴリン
simon
9
私が挙げた例は、もっと明確にできたかもしれません。今週中に修正します。localhost:3000 というドメインは、私のローカル開発サイトのドメインです。そのドメインを、実際のフォーラムのドメインに置き換えてください。例えば、https://forum.example.com/session/sso のように。
この場合、コメント機能や公開設定のいずれも設定する必要はありません。
SSO を有効にすると、WordPress サイト上のすべてのユーザーが Discourse フォーラムにログインできるようになります。Discourse でのアカウント作成を許可しない WordPress ユーザーがいる場合は、プラグインまたはサイトのテーマにいくつかのコードを追加する必要があります。その方法の詳細については、以下のトピックをご覧ください: https://meta.discourse.org/t/how-to-prevent-some-wp-users-from-being-able-to-login-to-discourse/93234。
evelynf
(Evelyn Fassett)
10
こんにちは、サイモンさん。
このリンクを設定しました。
https://forum.richarddolanmembers.com/session/sso?return_path=https://forum.richarddolanmembers.com/
まずはトップレベルにリダイレクトさせたいと思っています。後で特定の Discourse ページを選ぶかもしれません。
直接ログインを許可するチェックボックスは外さないようにしました。
現在、WordPress サイトからでもフォーラム自体からでもログインすると、WordPress サイトに戻ってしまいます。
お手数ですが、ご支援をお願いします 
エヴリン
evelynf
(Evelyn Fassett)
11
こんにちは、
リンクが実際に見えるように、プレビューをオフにしてみました。
見えるように調整中です。
*2ttps://forum.richarddolanmembers.com/session/sso?return_path=https://forum.richarddolanmembers.com/
エヴリン
evelynf
(Evelyn Fassett)
12
こんにちは、サイモンさん、
Discourse で管理者権限を持つユーザーが、SSO を通じてログインした際に、その権限が表示されていないことに気づいています。私のコラボレーターの一人は SSO プロセスでログインできますが、管理者権限が表示されません。私はまだログインできず、その原因を調査中です。
管理者ユーザーが SSO 以外から直接 Discourse にログインしてサイトを管理できるようにする、または Web サイトの SSO ログイン時に完全な Discourse 権限が確保されるようにする方法はありますか?
よろしくお願いいたします、
エヴリン
simon
13
はい、SSO の設定中に自分自身が Discourse からロックアウトされてしまった場合は、http://forum.example.com/u/admin-login にアクセスしてください(forum.example.com をお使いのフォーラムのドメインに置き換えてください)。ページにあるフォームにメールアドレスを入力し、送信されたメール内のリンクをクリックしてください。
サイトへのログインが再開できたら、そのユーザー用に新しいアカウントが作成されていないか確認してください。Discourse の既存のアカウントにログインするには、WordPress と Discourse アカウントで同じメールアドレスを使用する必要があります。
SSO の問題解決のヒントが得られるか、Debug and fixing common DiscourseConnect issues をご参照ください。お困りの問題は、おそらくそのトピックの「Solving require_activation SSO login issues(require_activation による SSO ログイン問題の解決)」セクションに記載されている内容に関連していると思われます。お使いのサイトはデフォルトの WordPress 登録システムを使用していないと思われますので、WP Discourse プラグインをインストールしてから作成された新しいアカウントは、SSO ペイロード内で require_activation フラグが true に設定されているはずです。