WP Discourse 用户名和 Discourse 用户名之间的双向同步?

我已将此帖移至 Support > WordPress 分类,因为 Contribute > Feature 分类是专门用于 Discourse 功能讨论的。

WordPress 插件中的“Discourse 用户名可编辑”(Discourse Username Editable)字段命名可能不够准确。该设置的说明文案确实需要更新,以明确其用途。当启用“Discourse 用户名可编辑”设置时,WordPress 网站上的用户可以在其个人资料页面设置自己的 Discourse 用户名。如果未启用该设置,则只有 WordPress 网站的管理员可以设置用户的 Discourse 用户名。Discourse 用户名仅由插件用于将 WordPress 上的帖子发布到 Discourse。

当 WordPress 和 Discourse 之间使用 DiscourseConnect 时,用户的 Discourse 用户名最初会根据其 WordPress 用户名进行设置。如果在 Discourse 站点上启用了 auth_overrides_username 设置,则 Discourse 上的用户名只能从 WordPress 设置。如果 Discourse 上 启用 auth_overrides_username 设置,用户可能会在 Discourse 上编辑其用户名,从而导致两个系统中的用户名不同步。

关于 Discourse 用户名字段,理想情况下,该字段应始终根据 Discourse 用户名在后台自动设置。我上次查看相关代码已有一段时间,但我认为,如果 WordPress 站点用作 Discourse 的 SSO 提供商,并且在 WordPress 的 DiscourseConnect 提供商选项卡上启用了“登录时创建或同步 Discourse 用户”(Create or Sync Discourse Users on Login)选项,则 Discourse 用户名字段会自动填充。此外,如果将 Discourse 用作 WordPress 的 SSO 提供商(通过 DiscourseConnect 客户端设置),Discourse 用户名字段也会自动设置。

理想情况下,无论 Discourse 上的“登录时创建或同步 Discourse 用户”选项是否启用,只要 WordPress 是 Discourse 的 SSO 提供商,Discourse 用户名字段都应始终自动设置。我认为,如果两个站点之间未使用 DiscourseConnect,则无法采取任何措施,但 @angus 对此可能有其他想法。

默认情况下,WordPress 不允许用户更改其用户名,因此我们收到的相关询问并不多。如果您希望确保 WordPress 和 Discourse 之间的用户名保持同步,请确保在 Discourse 上启用 auth_overrides_username 设置。您可能还希望在 WordPress 上启用“登录时创建或同步 Discourse 用户”选项。启用该选项后,用户每次登录您的 WordPress 站点时,Discourse 上的用户信息都会更新。如果未启用该选项,则用户仅在从 Discourse 注销并使用 DiscourseConnect 重新登录时,Discourse 上的用户信息才会更新。