内置评论系统是人们选择 WordPress(并经常长期使用)的原因之一。虽然我认为拥有评论系统很有吸引力(并且我非常喜欢在 WordPress 上构建),但我发现 WordPress 上的评论系统相当粗糙。它需要一些改进!那里还有很大的潜力!这是我的清单。
我没有 WordPress 内部信息来告诉我这些想法的难度、它们可能影响的其他方面以及围绕它们已经进行过哪些讨论。虽然我个人喜欢这些想法,但我完全意识到软件决策,尤其是在这种规模下,并非轻率做出的。因此,综上所述,这个愿望清单几乎就像一次设计练习,可以被视为用户反馈。
评论应该由用户拥有和编辑。
我发现一件非常奇怪的事情是,已登录的用户可以发表评论,但评论并不“属于”他们。他们的帐户与他们刚刚发表的评论之间似乎没有直接联系。似乎如果您确实拥有一个帐户,那么将其附加起来将是一件显而易见的事情。人们经常在评论中打错字,如果他们能够直接编辑它们,那么对他们来说会减少很多挫败感。也许可以提供一种方法,即使没有帐户也可以进行编辑,例如某个编辑超时窗口。

这是 BuddyPress 做的吗?我不知道。 我知道使用 bbPress,用户拥有(因此可以编辑)他们的主题和回复(可能是时间有限的),但此功能似乎没有扩展到帖子评论线程。
评论应该支持社交登录。
如今,不得不手动输入您的姓名、电子邮件地址等等来发表评论感觉太麻烦了。我敢打赌,仅此一项就劝退了许多潜在的评论者。像 Disqus 这样的评论系统使此过程变得快速而简单,并且在社交媒体上,我已经习惯了能够键入回复并立即做出回应。在 WordPress 评论表单上,我应该能够点击一个按钮,让我不必再费力地记住我的姓名和电子邮件等信息。这甚至可能是我以后编辑评论的途径。
Jetpack 为评论提供社交媒体登录功能,但是,如果您启用此功能,评论的 UI 将被 <iframe>
包裹,因此您无法控制设计或任何其他内容。
此外,最初显示为一个小窄文本区域块,您需要点击它才能展开成评论区域的 UI 也是不可更改的,并且与我的样式配合得不好。我不介意此功能由 Jetpack 提供支持,我只是想要更多控制权。

应该有一个 HTML 标签白名单。
我发现当人们键入 <div>
时,他们并不期望必须对其进行转义以免被删除。他们期望它只显示 <div>
。即使是 Web 开发人员也是如此。
我看到人们经常“搞砸”(并非完全是他们的错)评论中的 HTML。 Jetpack 在评论中提供 Markdown,这是一个巨大的改进,因为它使用反引号变得非常容易。我认为原生 WordPress 应该支持它。但即使这样,也不是每个人都了解 Markdown,更不用说它如何处理 HTML(例如,它何时转义 HTML 以及何时不转义)。
我已经思考这个问题十年了,我仍然不确定最佳解决方案,但白名单似乎可以提供很大帮助。例如,您可以使用 <em>
,它会使文本变为斜体,但像 <section>
这样的标签不在白名单中,并且会自动转义。
评论应该可以预览。
预览可以让用户有机会确保他们的评论看起来正确,而且可能同样重要的是,在点击提交按钮之前再思考一次。
回复应该生成电子邮件通知。
Jetpack 提供一项功能,允许用户订阅您的博客本身(新发布帖子的电子邮件通知)或用户正在评论的特定帖子的评论。

对于新博客文章电子邮件,这些电子邮件来自 WordPress.com,您无法控制它们(例如,设计控制或控制触发它们的帖子类型)。这仍然是一个很酷的功能,但是如果您认真地向用户提供新内容,您可能可以使用更 自定义的工作流程。
通知用户新的评论似乎是任何评论系统的绝佳功能。当我发表评论时,我会感到投入,并且很有可能我想关注后续的对话。尽管如此,更有可能的是,我只想听到对我的特定评论的回复。WordPress 已经为很多事情生成了很多电子邮件,这似乎并不超出范围。
回复应该显示父级评论。
在查看网站本身时,回复非常明显。它们嵌套在它们回复的父级评论之下。上下文始终存在。但是还有其他地方您可以看到回复评论并且完全缺少该上下文
- 回复评论的电子邮件通知不包含父级线程
- 管理(或 WordPress 应用程序)中的评论区域
后者包括一个“回复 [姓名]”链接,但它所做的只是链接到该父级评论所在的网站前端,它没有执行任何额外有用的操作,例如内联展开或显示弹出窗口预览。
评论电子邮件应该更美观。
我在 CSS-Tricks 上有一个名为 Clean Notifications 的插件,该插件已有 13 年未更新,但仍然可以正常工作。它所做的只是清理电子邮件,以便其中没有冗长的 URL,而是使用常规 HTML 链接。


我建议默认的 WordPress 生成的电子邮件可以进行全面设计改进。基本的 HTML 电子邮件使用将允许链接使用和基本排版,这将使它们都变得更加美观。

评论电子邮件应该包含可操作的链接
确实存在用于删除和标记为垃圾邮件评论的链接,但它们实际上并没有执行这些操作,它们会将您带到一个页面,然后您必须点击另一个链接才能执行该操作。如果我已获得授权,则它应该直接执行操作。
Ajax
评论操作(特别是发表新评论)应该可以在无需刷新整个页面的情况下完成。刷新整个页面让人感觉过时了,就像缺少快速社交认证一样过时。
评论回复已经有一个特殊的脚本,会在 WordPress 主题中加载。该脚本负责操作 DOM 并将评论表单移动到评论旁边(当点击“回复”链接时,如果启用了此功能)。因此,在任意主题上使用特定于评论的 JavaScript 存在先例。
我认为可以编写更多 JavaScript 代码,以便通过 Ajax 提交新评论并操作 DOM 来完成后续操作(显示评论,显示批准消息,显示错误等)。这方面也存在先例,例如第三方插件和博文中关于手动实现的介绍。就我个人而言,我只是不想背负这些技术债务,我只希望它能正常工作。
更多评论操作
我一直使用一个插件来帮助我在评论线程中“置顶”或“隐藏”评论。它并不复杂,因为它只是更新单个评论的一些元数据,然后让我使用类应用这些状态并在 CSS 中对其进行样式化。我不知道所有网站都需要这种功能,但是……Jetpack 提供了添加按钮的功能,可以像在 WordPress.com 上一样“点赞”帖子。为什么评论不行呢?如果人们可以对评论进行投票,它可以做一些有用的事情,例如允许默认的评论排序基于点赞而不是仅基于时间顺序。我认为人们更关心有趣的评论,而不是按日期时间顺序查看它们。
因此,额外的评论操作可能是……
- 点赞
- 点踩
- 举报为垃圾邮件
- 举报为有害信息(或违反行为准则)
- 保存/固定
说到投票,如果评论由用户拥有,并且评论包含有关质量的数据,那么拥有大量优质评论的用户可能会以各种方式获得奖励。现在,您基本上必须选择是否审核所有评论,但可能您只需要审核来自质量评分低/差/无的用户提交的评论。更不用说在评论线程中突出显示来自已知优质评论者的评论了。
排序
假设我们获得某种评论投票系统,那么默认情况下,评论按投票数排序是有意义的。或者至少除了时间顺序之外,还可以提供排序选项。
前端权限
我认为如果您可以像在后端一样操作前端的评论,那将非常棒。例如,编辑评论、删除评论、将其标记为垃圾邮件、更新元数据等。
评论管理员权限角色
在评论线程活跃的网站(如果有了这些很棒的改动,所有网站都会如此,对吧?)上,能够邀请值得信赖的社区成员来管理评论线程会很棒。不是整个网站的管理员。不是作者或编辑。只是那些有权限处理评论的人。

这部分灵感来自Jeremy Felt 最近的一篇文章,也部分延续了我自己的想法。Jeremy 提到了私密评论(有趣,但对我来说吸引力不大)和 Webmentions 支持(请务必支持!)等想法。也许这个项目会取得进展。
如何开发一个新的插件来实现您提到的所有这些功能呢?
我需要大约一个月的时间来构建它。
您觉得怎么样?
是否可以使用 REST API 解决其中的一些问题?例如,避免页面刷新。通过添加中间件发送电子邮件来通知用户他们的评论有回复。使用 AJAX 延迟加载评论。使用 ACF 添加点赞字段并按投票数排序?也许还有其他一些事情。我不确定,但您可以告诉我。
那将非常棒。我也想过同样的问题。我不是最有经验的 WordPress 开发人员,但我很乐意为这样的项目贡献力量。
好吧,这很酷。您已经开发出这个插件了吗?
很高兴看到这份清单,Chris,评论是 WP 的一个杀手级功能,它让我一直使用 WP(大约 15 年了)。
它是相对于 SSG 的一个重要差异化因素,改进它们将扩大 WP 可以做的事情与静态站点生成器可以做的事情之间的差距。
WP-Discuz 插件实现了大部分,如果不是全部,这些功能。但它有点笨拙,设置屏幕也不直观。您提到的所有内容都应该整合到核心功能中。