后台把整站评论关掉,文章页底部照旧显示姓名邮箱和提交按钮,填完提交报评论已关闭,用户以为站点坏了。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,allow_comments 只控制是否接受新评论,模板里无条件调用 comments_template 就会把表单渲染出来。部分主题还用 comments_open 之外的条件判断,改了设置也进不到那个分支。

碰到「关闭评论表单残留」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。报错里带路径的,先去看那个路径在不在、权限对不对。

<?php if (comments_open()) : ?>
  <?php comment_form(); ?>
<?php endif; ?>

同一份配置存在多处的,先确认改的是被加载的那一份。

具体做法是,在模板里用 comments_open 包住整个评论区,关闭时不输出表单;已经关掉的旧文章,评论列表留着显示,只把表单部分去掉;全站关评论后清一次页面缓存,缓存里的旧 HTML 还会带表单。

最后用这个标准收尾,关闭评论的文章底部不再出现输入框,历史评论照常显示。

作者 9823189