wp db query "SELECT COUNT(*) FROM wp_posts WHERE post_type='attachment' AND post_date='0000-00-00 00:00:00';" wp db query "UPDATE wp_posts SET post_date='2026-03-01 10:00:00', post_date_gmt='2026-03-01 02:00:00' WHERE post_type='attachment' AND post_date='0000-00-00 00:00:00';"
从旧站导入的 1200 个附件,媒体库按 2026 年 3 月筛选只有 4 条。数据库里这些附件的 post_date 是 0000-00-00 00:00:00,年份下拉里也没有对应项。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。
追下去是这么回事:导入脚本直接写 post_type=attachment,没有补 post_date 和 post_date_gmt,MySQL 在非严格模式下接受了零值。媒体库的月份筛选按日期字段分组,零值全被排除。
「附件日期元数据缺失」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。同一份配置存在多处的,先确认改的是被加载的那一份。
新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。
处理上按这个顺序:先用 SQL 统计零日期的附件数量 确认影响范围;从文件名里的年月或文件 mtime 推一个日期回填;回填后刷新媒体库 再看月份筛选。
确认没问题再收工,媒体库按 2026 年 3 月筛选能列出这批附件,月份下拉的条目和附件数对得上。
