WP Discourseのユーザー名とDiscourseのユーザー名の間で双方向同期は可能ですか?

この投稿は、Contribute > Feature カテゴリが Discourse の機能に関するものであるため、Support > WordPress カテゴリに移動しました。

WordPress プラグインにある「Discourse Username Editable(Discourse ユーザー名を編集可能)」フィールドは、名称が適切でない可能性があります。この設定が何のためにあるのか明確になるよう、設定の説明文(コピー)は必ず更新する必要があります。「Discourse Username Editable」設定を有効にすると、WordPress サイトのユーザーは自分の WordPress プロフィールページで Discourse のユーザー名を設定できます。この設定が無効の場合、Discourse のユーザー名を設定できるのは WordPress サイトの管理者のみとなります。Discourse のユーザー名は、WordPress から Discourse へ投稿を公開する際にプラグインによってのみ使用されます。

WordPress と Discourse の間で DiscourseConnect が使用されている場合、Discourse のユーザー名は当初 WordPress のユーザー名から設定されます。Discourse サイトで auth_overrides_username 設定が有効になっている場合、Discourse 上のユーザー名は WordPress からのみ設定可能です。Discourse で auth_overrides_username 設定が_無効_な場合、ユーザーは Discourse 上でユーザー名を編集できるため、2つのシステム間でユーザー名が同期されなくなる可能性があります。

Discourse のユーザー名フィールドについては、理想的にはこのフィールドは常にバックグラウンドで Discourse のユーザー名に基づいて設定されるべきです。関連するコードを最後に確認してから久しいのですが、WordPress サイトが Discourse の SSO プロバイダーとして使用され、WordPress の DiscourseConnect プロバイダー設定タブで「Create or Sync Discourse Users on Login(ログイン時に Discourse ユーザーを作成または同期)」オプションが有効になっている場合、Discourse のユーザー名フィールドは自動的に埋められると認識しています。また、Discourse が WordPress の SSO プロバイダーとして使用されている場合(DiscourseConnect クライアント設定による)、Discourse のユーザー名フィールドも自動的に設定されます。

理想的には、DiscourseConnect で「Create or Sync Discourse Users on Login」オプションが有効かどうかに関わらず、WordPress が Discourse の SSO プロバイダーである場合、Discourse のユーザー名フィールドは常に自動的に設定されるべきです。2つのサイト間で DiscourseConnect が使用されていないケースについては、特に解決策はないと思いますが、@angus なら何かアイデアを持っているかもしれません。

デフォルトでは、WordPress はユーザーがユーザー名を変更できないようになっているため、これについて多くの質問を受けたことはありません。WordPress と Discourse の間でユーザー名を常に同期させておきたい場合は、Discourse で auth_overrides_username 設定を有効にしてください。また、WordPress で「Create or Sync Discourse Users on Login」オプションを有効にすることをお勧めします。このオプションを有効にしておくと、ユーザーが WordPress サイトにログインするたびに、Discourse 側でユーザー情報が更新されます。このオプションが無効な場合、ユーザーは Discourse からログアウトし、DiscourseConnect で再度ログインした際にのみ、Discourse 側で更新されます。