站点从旧 CMS 导入文章 导入脚本把 dateModified 写成导入时间 但 datePublished 用的是原文 2024 年 部分文章出现修改时间早于发布时间 Article 校验报错 富媒体全部不展示
真正麻烦的地方在于,几个原因的现象几乎一样。导入时两个日期字段来源不同 没有做先后校验;时区处理不一致 一个 UTC 一个本地时间;模板直接输出数据库原始值 没有兜底;部分文章缺 datePublished 时用了默认值。
先抓一段 JSON-LD 看两个日期
curl -s https://www.example.com/p/123 | grep -o '"date[MP][a-z]*":"[^"]*"'
批量修正倒挂数据
UPDATE wp_postmeta SET meta_value = post_date WHERE meta_key = '_date_modified' AND meta_value < post_date;
然后在模板里加先后判断
echo max($modified, $published);
剩下的就是用结构化数据测试工具复验
https://search.google.com/test/rich-results
这次没动代码,只在配置和运行环境上找原因。
恢复的判定其实很直接。所有文章修改时间不早于发布时间 校验零错误 富媒体恢复展示。
两个日期字段来源不同时 一定要在输出前做一次大小比较 导入脚本最容易在这里出错。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
