$args = array(
  'order' => strtoupper(get_option('comment_order', 'asc')),
  'orderby' => 'comment_date_gmt',
);

讨论设置里把评论排序改成按时间正序,前台刷新还是最新的排在最上面,换个浏览器一样,等了一天也没变。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:主题在 wp_list_comments 里硬编码了 order 参数,优先级高于后台设置。另一个插件也在 pre_get_comments 上挂了回调,两个排序条件叠加,最后生效的不是你以为的那个。

「评论排序错乱」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。监控和日志的时间要对上,时区不一致会多绕很大一圈。

临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。

处理上按这个顺序:全局搜 wp_list_comments 的调用处,看有没有显式传 order 或 orderby;临时停掉评论相关插件再刷新,确认是不是第三方覆盖;确实要在后台控制就别在模板里写死,统一读 comment_order 这个选项。

确认没问题再收工,前台第一条是最早的评论,翻页后顺序也保持正序。

作者 9823189