评论设成每页二十条,翻到第二页只剩主评论,原本挂在这些主评论下的回复一条都不显示,第一页看着完全正常。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,分页查询只取当前页的顶层评论,子评论要靠 comment_parent 归位,父级落在上一页时就找不到挂载点。主题里自己写的回调没有处理跨页父子,直接把子评论过滤掉了。

「评论分页回复丢失」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。

<?php
$cpage = get_query_var('cpage') ?: 1;
wp_list_comments(array('page' => $cpage, 'per_page' => 20));
?>

具体做法是,先把每页条数临时调到二百,确认回复是否全部回来,能回来就是分页逻辑的问题;在回调里给跨页的子评论补一个占位父节点,别让它因为找不到父级被丢弃;分页参数改用 cpage 并保留原有查询串,别让翻页把评论排序参数一起丢掉。

最后用这个标准收尾,第二页也能看到挂在本页主评论下的回复,楼层序号连续不跳号。

作者 9823189