这类问题我又碰上了一次。schema 模板里用了文章缩略图变量,草稿状态下为空,输出成 image 为 null。整段 JSON 语法合法但字段无效,富媒体报空值错误,一开始完全看不出是哪一条。
第一反应是「只在草稿和无图文章上出现,抽样正好没抽到」,验证下来不成立。
把日志和配置对完,能解释这个现象的基本就这几处。模板变量没有判空,空值被直接序列化;字段必填但数据缺失,没有兜底值;页面缓存里存的还是空值版本。
上来先抓页面看有没有空值字段
curl -s https://www.example.com/post/1 | grep -c 'null'
定位是哪段脚本输出的
curl -s https://www.example.com/post/1 | grep -o 'application/ld+json'
模板加判空,为空时整个字段不输出
if (!empty($img)) { $schema['image'] = $img; }
等前面都确认过,再清
页
改完先别撤,确认这几项。清掉空值后富媒体测试通过,报错条目第二天消失,带图文章的配图也恢复正常展示。
补一句。可选字段为空时整个不输出,比输出空值更容易通过校验。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。
