今天给博客 WordPress SEO 的时候,重新生成了一下 sitemap 站点地图,发现有些文章的修改时间不对劲。大概有不到100条的记录修改日期全都变成了 1969-12-31 18:00:00 ,可能是以前做数据库迁移或者 WP 导入导出的时候把修改时间给整乱了。解决方法也很简单,去数据库中把表中的数据更新回来就好了。

用任何数据库管理工具连接数据库,我这里安了 phpmyadmin ,直接进入到 wp_posts 表中,可以看到确实有些文章的 post_modified 字段变成了 1969-12-31 18:00:00,用 select 语句可以查看到底有多少条日期不对的记录(查找早于2000年的记录):

SELECT * FROM `wp_posts` WHERE post_modified < '2000-01-01';

注意:做更新操作时,提前备份下数据库!

发现了77条记录,看到 wp_posts 表中还有个 post_date 字段,也就是发布时间,也是时间格式的数据类型。直接用该字段值覆盖掉修改字段的值就可以还原了。注意表单中还有另外一个 GMT 时间的字段也需要更新。

UPDATE `wp_posts` SET post_modified = post_date WHERE post_modified < '2000-01-01';
UPDATE `wp_posts` SET post_modified_gmt = post_date_gmt WHERE post_modified_gmt < '2000-01-01';

重新刷新了一下 sitemap, 都恢复正常了!