基本论坛访问/与 WordPress 站点集成

我使用 MemberPress 管理一个基于 WordPress 的会员网站。
我们已搭建了一个 Discourse 论坛,并安装了 wp-discourse 插件将两者连接起来。

不过,我尚未找到任何文档说明用户通常如何从 WordPress 网站访问该论坛。我不希望用户在登录后自动跳转到论坛,但我认为可以在菜单中添加一个链接,并为未登录用户显示一段提示文字,而为具备相应会员级别的已登录用户显示另一段提示文字及论坛链接。

非常希望能得到相关指导。我注意到该插件的 various 设置中似乎暗示帖子可以嵌入到 WordPress 网站中,但我未能找到关于具体呈现方式的清晰说明。

谢谢!
Evelyn

您看过这个主题吗:

是的
我已经参考了相关部分。但我仍然没有找到关于如何将论坛连接到网站的信息。我想只需在菜单中添加一个链接即可。
我尝试将 WordPress 网站设置为论坛的 SSO,但我需要进一步测试,因为当我以在论坛上有对应用户名账户的用户身份访问论坛时,它仍然要求我登录论坛。
如果能看到一个将网站链接到 Discourse 论坛的示例就好了。
谢谢!
Evelyn

我们的官方博客就是一个例子:

没错。您只需编辑您的网站,在合适的位置添加一个指向论坛的链接。

如果您使用插件将 WordPress 帖子发布到 Discourse,您可以在每个 WordPress 帖子中添加一个指向相关 Discourse 主题的链接。为此,请在插件的“评论设置”选项卡中选择“启用 Discourse 评论”。选择该选项后,您将获得以下选择:在帖子下方显示 Discourse 评论,或仅显示指向评论的链接。

启用 SSO 后,指向 Discourse 主题的链接将默认为 SSO 登录链接。这意味着当用户点击该链接时,他们将自动通过 SSO 登录流程,然后以登录用户身份重定向到 Discourse 主题。

您可以将论坛链接添加到 WordPress 站点的菜单中。启用 SSO 后,您可以构建链接,使用户在点击链接时通过 SSO 登录流程。有关如何构建链接的详细信息,请参阅 https://meta.discourse.org/t/create-an-sso-login-link/109290。要在 WordPress 上以这种形式添加链接,您需要向菜单添加“自定义链接”:

我截图中显示的示例将在用户点击“论坛”链接时将其登录到 Discourse,并重定向到论坛首页。若要创建将用户重定向到论坛特定页面的链接,请在 URL 中添加 return_path 查询参数。例如:http://localhost:3000/session/sso?return_path=http://localhost:3000/c/fun

你好,Simon,
谢谢!这很有帮助。

有没有相关文档可以说明这一点?

http://localhost:3000/session/sso

如果我想使用实际的网址(子域名)来访问论坛,而不是 localhost 网址,这样也可以吗?

我们可能不会通过 WordPress 的帖子跳转到 Discourse,而是提供一个链接,让会员直接访问论坛——但我们希望他们在到达论坛时已经处于登录状态。

这意味着在这种情况下,所有关于评论和帖子等的设置都不适用,对吗?我们只需要通过会员插件来保护论坛的访问权限。评论和帖子不需要同步。

Evelyn

哦,抱歉,我只是不小心点开了你分享的那个链接……我读得太快了 :slight_smile:
Evelyn

我给出的示例不够清晰,本周我会对其进行修改。localhost:3000 是我本地开发站点的域名。您应将该域名替换为您论坛的实际域名。例如:https://forum.example.com/session/sso

如果是这种情况,则您无需配置任何“评论”或“发布”设置。

启用 SSO 后,您 WordPress 站点上的所有用户都将能够登录到 Discourse 论坛。如果您的 WordPress 用户中有些人不应被允许在 Discourse 上创建账户,则您需要向某个插件或您站点的主题添加一些代码。相关主题详细介绍了如何实现这一点:https://meta.discourse.org/t/how-to-prevent-some-wp-users-from-being-able-to-login-to-discourse/93234。

嗨,Simon,

我已经设置好了这个链接。

https://forum.richarddolanmembers.com/session/sso?return_path=https://forum.richarddolanmembers.com/

我希望它直接跳转到顶层页面。稍后我可能会选择特定的 Discourse 页面。

我确认已勾选允许直接登录的选项。
目前,无论是从 WordPress 站点还是论坛本身登录,都会将我重定向回 WordPress 站点。

求助 :slight_smile:
Evelyn

你好,
我尝试关闭预览功能,以便你能看到链接。
我正在调整设置,让你能够看到它。

*2ttps://forum.richarddolanmembers.com/session/sso?return_path=https://forum.richarddolanmembers.com/

Evelyn

你好,Simon,

我们注意到,拥有 Discourse 管理员权限的用户通过 SSO 登录后,无法看到这些权限。我的其中一位协作伙伴可以通过 SSO 流程登录,但看不到他的管理员权限。我目前完全无法登录,还在排查原因。

请问是否有办法允许管理员用户不通过 SSO 直接登录 Discourse,以便他们管理网站?或者,能否确保他们在通过网站 SSO 登录时拥有完整的 Discourse 权限?

谢谢!
Evelyn

可以。如果在配置 SSO 时将自己锁在了 Discourse 之外,请访问 http://forum.example.com/u/admin-login(将 forum.example.com 替换为您论坛的域名)。在页面表单中输入您的电子邮件地址,然后单击系统发送给您的邮件中的链接。

重新登录站点后,请检查是否为他创建了新的账户。若要登录 Discourse 上的现有账户,您在 WordPress 上使用的电子邮件地址必须与 Discourse 账户的电子邮件地址一致。

请查看 https://meta.discourse.org/t/debugging-and-fixing-common-sso-issues/103496,看看是否能为您提供解决 SSO 问题的线索。您遇到的问题很可能与该主题中“解决 require_activation SSO 登录问题”部分所描述的情况有关。我认为您的站点并未使用默认的 WordPress 注册系统,因此自您安装 WP Discourse 插件以来创建的新账户,其 SSO 负载中的 require_activation 标志会被设置为 true