数据库整理之二

写前面两篇文章(12)的过程中基本上把 wordpress 的数据库内容从头到尾翻看了一遍,除了 wp_postmeta 表以外。原因之一是这个表在参考的文章里都轻描淡写一笔带过,所以我觉得这个表也没有什么玄机。等到无意中看到这个表里有居然还有 12xxxxx 的号码的时候才觉得整理数据库这事儿没完。至于为啥是 12xxxxx 这个数字引起了注意,这个在上面第二篇文章里头讲了讲:导入的文章的 ID 很多都是这种巨大的号码。

和邪社的数据库优化文章里头提过 wp_postmeta 表的功能,说主要记录了你写日志时候的心情 ,你当时听的歌曲,你所处的地理位置,一些相关日志的列表,特定为搜索引擎指定日志信息等等。其实这个表还有个更重要的作用,那就是 wp_old_slug 的重定向功能。表里头 meta_key 字段如果是 “_wp_old_slug”,则 meta_value 字段保存了文章所有保存过的 slug,包括第一次点保存的时候自动生成的那个,对于中文标题,这就是一串乱码一样的字符。如果也像我一样写一篇文章可能修改几次 slug 并且永久链接包含了 /%postname%/ 的话,可以试试拿以前的 slug 替换掉永久链接里头 /%postname%/,这些“过期”的链接依然可以用来访问文章的,这就是 wp_old_slug 重定向了。带来的好处是修改 slug 导致永久链接改变时,不会让文章不能访问;而带来问题是搜索引擎可能会同时保留好几个不同 slug 版本的同一篇文章,这并不太好。所以可以考虑从 wp_postmeta 表中删掉这些 _wp_old_slug。但是我在这两个利弊之间徘徊甚久也没决定到底是删还是不删,最后怒了,扔一边不管了。

文章插入的附件也会把相关信息保存在 postmeta 里头,比如路径啦尺寸啦什么的。如果文章还设置了 featured image,这个信息也会被保存到表里。对应记录的 meta_key 是“_thumbnail_id”,meta_value 是图片的 post_id,而这里就是开头提到的那个 12xxxxx 出现的地方。这些 meta_value 在之前重排 id 的时候被我忽略了,所以现在没有办法用重排 id 时候用的方法来修改了。只好对照着 wp_posts 里的 post_parent 修改。好在记录的数量不多,手工修改几下搞定。完事儿后顺手修改了一下重排 id 的程序,因为没有调试,也不敢保证完全没有问题。要是重排 id 的时候没有修改 post_parent,那么恭喜啦,这下事情麻烦了。好在已经插入文章的附件不会受影响,只是搞乱了媒体管理,可以选择不去管它们。

聊一聊吧

2条评论

说点啥呗

您的电子邮箱地址不会被公开。 必填项已用 * 标注