$text = $review['content'] ?: $review['excerpt'];
if ($text === '') {
$text = '该用户只打了分';
}
echo esc_html($text);
商品页评价区一排五颗星,下面没有任何文字,接口返回里 comment 字段是空字符串,rating 却是 5。五星倒是实打实的。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。
追下去是这么回事:模板读的是评论内容的裸字段,主题启用了摘要过滤,长文本走了另一个键。字段名对不上时模板不报错,直接输出空。
「评价文案为空」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。
把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
处理上按这个顺序:先打印第一条评价的完整结构,确认文案到底存在哪个键;模板取值加兜底,空值时回退到摘要字段或显示暂无文字评价;别用 if ($comment) 判断,空字符串为假会把正常内容也跳过。
确认没问题再收工,评价区每颗星下面都能看到文字,只有评分的记录显示占位说明。
