如果您查看下面的截图,可以看到被标记和隐藏的文章在 WordPress 中仍然显示。此外,参与讨论的人数也比实际人数多,这些人是在话题中发送了私密消息的用户。
我使用的是旧版本的 wp-discourse 插件,但我不确定这是否会导致问题。在我看来,这个问题应该在 Discourse 端解决,这样隐藏的文章和私密消息的作者就不会通过 API 暴露出来。
在 WordPress 中的显示效果如下:
在 Discourse 中的显示效果如下:
顺便提一下,我刚刚意识到提到的那 6 个人也点赞了这篇帖子。其中三人也参与了私密对话,但他们确实点了心形表情。也许私密对话的头像实际上并没有通过 WordPress 评论泄露出来。
感谢报告此问题。我发现了两个独立的问题。第一个问题是,TopicViewWordpressSerializer 返回了隐藏帖子。我们需要停止返回隐藏帖子,或者在从 Discourse 返回的数据中添加 hidden 属性。这将允许插件处理隐藏帖子。
第二个问题是,Discourse 返回的话题参与者列表是基于请求用户可见的参与者来确定的。由于插件以管理员用户身份请求 Discourse 话题,因此那些在话题中创建过私密帖子的员工用户会被包含在参与者列表中。我需要进一步研究这个问题。
我们是否需要在 WordPress 端显示这些 hidden 帖子?如果不需要,将它们通过网络发送似乎是一种浪费。
隐藏的帖子已从 WordPress 路由返回的帖子列表中移除。如果您使用的是最新版本的 Discourse,它们将不再出现在 WordPress 评论中。
参与者部分的问题较难处理。返回的参与者列表取决于发起 Discourse 评论 API 请求所使用的用户名。假设您在插件的“连接”设置中使用了“所有用户”API 凭据,那么参与者列表将包含创建过私密消息的用户。
我将在插件中添加一个选项,允许从评论区域中排除参与者部分。如果您无法更新所使用的 WP Discourse 插件版本,可以通过自定义 replies_html 模板来移除参与者部分。