讨论设置里取消了评论作者必须填写姓名和邮箱,前台提交时邮箱留空仍被拦下,提示请填写邮箱,改设置像没生效。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

$fields['email'] = '<p class="comment-form-email">
  <label>邮箱(可不填)</label>
  <input id="email" name="email" type="email">
</p>';

设置项只影响后台的校验逻辑,主题模板里的 input 还带着 required 和 aria-required,浏览器端先拦了一次。有些主题把字段写死在 comments.php 里,连后台设置都不读。这一点先确认清楚,后面就不用反复试。

「评论邮箱必填」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。

具体做法是,打开 comments.php 找 comment_form 的参数,把 fields 里的 required 去掉;提交按钮旁留一行说明邮箱不会被公开,否则用户还是会犹豫;用无痕窗口测一次,登录状态下的表单走的可能是另一套模板。

改完照着核一遍,邮箱留空也能提交成功,后台评论列表里作者邮箱显示为空。

作者 9823189