如何为大型 WordPress 杂志最好地集成 Discourse?

您好。您好,
我经营一家大型的科技类在线杂志 SvětAndroida.cz - nejlepší recenze, novinky, testy a návody WordPress 本身并不支持这些功能,而第三方解决方案用了一段时间后总会出现问题。

因此,我们决定将 WordPress 仅用于杂志功能,以尽可能快速、简洁地展示内容。并将所有社区相关功能完全迁移到 Discourse,因为它能更好地处理这些任务。

这种设置对我来说似乎非常理想。但我们运营这家杂志已有 13 年之久,期间我们积累了数十万条评论和数万名注册用户。我想听听您关于如何使 Discourse 集成最优雅、从用户角度看最有效的想法?

事实:

  • WordPress 上的杂志网站是 https://www.svetandroida.cz/
  • 我们在此运行 Discourse 社区 https://komunita.svetandroida.cz/
  • 我们希望使用 Discourse 来管理用户账户,我们认为它更好
  • 我们每天发布约 5 到 15 篇文章
  • 我们有数万篇文章(我们已经删除了很多了 :))
  • 积极评论的用户有几十到几百人
  • 我们已经设置了 Discourse 的 WordPress 插件,一切似乎运行正常,唯一还没有设置的是 SSO
    • 在 WordPress 杂志上发布文章会自动以隐藏方式发布到 Discourse

我需要解决什么问题以及如何解决?您能想到更好的解决方案吗?

用户登录
通过 WordPress 插件,我将设置 DiscourseConnect 客户端,并希望它不会出错或阻止我的编辑访问 :)。我希望不会。开玩笑的,但确实,这是我仔细阅读了讨论后仍然不完全清楚的地方。

我希望,如果用户想登录 WordPress 杂志网站(他们已经有一个 WordPress 账户),他们的账户也会自动在 Discourse 中创建。

如果碰巧没有发生这种情况,我大概可以要求那几十个用户忘记他们现有的 WordPress 用户账户,并在 Discourse 中创建新账户。

关于文章评论
目前,我还没有找到一种优雅的方式将用户已发布的 WordPress 评论迁移到新启动的 Discourse。如果我错了,请指教。

因此,已发布的评论将保留在 WordPress 中,任何新评论将发布到 Discourse。

我们不会将已发布的评论迁移回 WordPress 文章下方,而只会在每篇 WordPress 文章下方放置一个链接,指向 Discourse(指向相应的 Discourse 文章)。

我们目前的方式是,所有已发布的文章都会以隐藏方式迁移到 Discourse,只有当有人在 Discourse 中添加新评论时,它们才会显示出来。这个解决方案不算差,但在我们的情况下,这意味着我作为管理员将在 Discourse 中看到数千个隐藏的帖子:(。

有没有更优雅的解决方案?例如,WordPress 文章发布后不以隐藏方式迁移到 Discourse,而是在有人点击 WordPress 文章下方的链接并添加评论时才在 Discourse 中创建帖子?

这样论坛就不会有数千个看不见的帖子了。

如果能做到绝对完美,那么通过 WordPress 中的“魔术链接”,Discourse 帖子将只临时创建,如果碰巧没有添加评论,用户改变主意/离开,帖子将在一段时间后被删除。

感谢您阅读到这里(作为奖励,我将发送一张 AI 图片),期待您的想法和见解。

2 个赞

DiscourseConnect 客户端功能的工作方式与其他形式的社交登录类似。例如,它类似于通过 Facebook 登录 WordPress,但以您的 Discourse 站点作为身份验证提供程序,而不是 Facebook。这意味着,在用户能够使用 DiscourseConnect 登录您的 WordPress 站点之前,他们需要在您的 Discourse 站点上创建帐户。但是,不创建 Discourse 帐户不会阻止任何用户登录您的 WordPress 站点。当 WordPress 站点是 DiscourseConnect 客户端时,WordPress 上的常规用户名/密码登录仍然可用。

由于您有很多用户习惯于登录您的 WordPress 站点,因此可以考虑将您的 WordPress 站点用作 Discourse 站点的 DiscourseConnect 提供程序。如果这样设置,您所有现有用户都将能够轻松登录您的新 Discourse 站点。他们所要做的就是点击您的 WordPress 站点上的链接。有关如何构建链接的详细信息在此处:创建 DiscourseConnect 登录链接

听起来您想将您站点的社交方面完全从 WordPress 迁移到 Discourse,所以这可能是您不将 WordPress 站点用作 DiscourseConnect 提供程序的原因。我担心要求用户在 Discourse 上创建新帐户,而不是仅仅登录他们的 WordPress 帐户并单击链接来访问论坛,可能会阻止一些用户加入新站点。

如果您将 WordPress 用作 DiscourseConnect 提供程序,需要注意的主要一点是,当这样配置时,它将成为 Discourse 的唯一登录方法。这意味着您不能让一些用户通过 WordPress 登录 Discourse,而另一些用户通过在 Discourse 站点上使用用户名/密码注册帐户来登录 Discourse。所有用户都必须在 WordPress 上拥有帐户才能访问 Discourse 站点。

如果您不清楚将 WordPress 用作 DiscourseConnect 客户端和 DiscourseConnect 提供程序之间的区别,请告诉我。

技术上是可能的,但我认为没有经过充分测试的方法。社区中可能还有其他成员对如何处理这个问题有想法。

这可能是可能的。我的感觉是这可能会导致问题。

在您的 Discourse 站点上,您可以通过在 URL 中添加以下查询字符串来过滤未列出的主题:?status=listed。例如 \u003chttps://meta.discourse.org/latest?status=listed\u003e。有一个现有的主题组件可用于在查看“打开”和“关闭”主题之间切换:https://meta.discourse.org/t/topic-status-filter/111307。如果它尚不存在,那么添加“已列出”和“未列出”状态到该过滤器将相对容易。但我想在这种情况下,您只希望工作人员用户看到该过滤器。

这可以通过 WordPress 使用由计划任务处理的 API 请求来完成。

6 个赞

感谢您的时间和回复。
关于 DiscourseConnect,我已经清楚了,感谢您的详细解释。那么,我们就在 WordPress 中将 DiscourseConnect 设置为客户端。

旧评论可能没有足够的价值,不值得费力将它们从 WordPress 迁移到 Discourse。

但是,那些基于已发布文章的讨论仍然在我脑海中 :)。过滤器确实是管理员看不到“隐藏”帖子的解决方案,但我仍然无法放弃可能存在其他方法的想法。
您提到这可能会导致问题,能否请您列举一些您担心的可能出现问题的情况?
通过 API 可能是个解决方案,但由于我们不是程序员,我无法充分想象它是如何工作的。

我的设想是,当用户点击一个指向(尚未发布的)Discourse帖子的链接时,WordPress后端会触发一个函数,将帖子发布到Discourse。当用户点击链接时触发将帖子发布到Discourse是可行的。

我设想的问题是:

  • 如果帖子尚未发布,链接指向哪里?在帖子发布后,我们才能知道Discourse上帖子的URL。需要开发一些东西,以便当用户点击链接时,帖子在后台发布,然后根据从Discourse收到的响应,用户将被重定向到Discourse帖子。

  • 我不确定如果您的网站非常繁忙,并且许多用户同时点击触发Discourse帖子发布的链接,会发生什么。这可能没问题,但感觉有风险。

编辑:处理第一个问题的办法是告知用户正在发生什么,并显示“请稍候,我们正在发布帖子”的消息。帖子发布后,可以生成指向该帖子的链接,并提示用户点击它。这个过程可能需要几秒钟。

2 个赞

因此,整个过程可以适应一个小的 JavaScript,它会在 WordPress 网站的文章下方放置一个正常的链接以参与讨论。首先,JavaScript 会调用一个函数(在 Discourse 上创建主题,这已经是 WP 插件所做的)并向用户显示正在创建主题,当 JavaScript 从 Discourse 获取主题已创建的信息时,它会将用户重定向到 Discourse 上的评论主题。

我说对了吗,还是我想得太简单了? :slight_smile:

不自动重定向用户会更简单,但是的,你概述的是正确的。用户点击链接生成主题后,脚本会定期向 WordPress 服务器请求主题 URL。一旦获得 URL,它就会将用户重定向到 Discourse 主题。

2 个赞