首页 打击社菜单随学随记批量修改 wp_posts 中 guid 中域名信息

批量修改 wp_posts 中 guid 中域名信息

站点架设的环境都是一样的,合并起来不会出现数据库数据不兼容的问题。
合并的过程中,并不是直接用 PMA 导出数据进行合并。
而是应用到了 WordPress 后台自己的导出导入功能。

比较简单的方法,就是将不想继续开放的站点,使用后台导出功能,将站内的文章到处成 XML 文件。
导出的数据包括日志、页面、分类、标签、附件信息等。等导出这些文件后。
分别在想保留的这个站点的后台进行导入。
附件也可以由程序自动从原来的站点下载并存放在目标站点中。

不过,这样操作以后,问题就出现了。大家可能知道,WordPress 数据库中的 wp-posts 这个表中有一个 guid 键值。这里记录了文章的最原始 URL 信息。无论你将数据导入到什么地方。这个信息是不变的。而当你批量修改了这个键值中的域名后。就出现了文章的 ID 重复的问题。
虽然不影响直接的页面访问,但是对于 RSS 订阅等操作可能会有所影响。

那么,如何进行后续的整理操作的呢?往下看。
批量修改 wp_posts 中 guid 中域名信息

UPDATE `wp_posts` SET `guid` = replace( guid, “原域名”, “新域名” ) ;

这样,经过几次的查询处理,可以将从多个站点导过来的文章的域名进行统一。

批量重新生成 guid 信息

UPDATE `wp_posts` SET `guid` = CONCAT(‘域名/前缀’,ID) where post_type=’类型’

“域名/前缀”这个地方有以下两种形式:
“http://domain.tld/?p=” 供 Post 使用。
“http://domain.tld/?page_id=” 供 Page 使用。
而且语句后面的“类型”也分别为“post”和“page”

这样做,是为了能够让 guid 中记录的链接与站内文章的真实链接相对应。而且,以上操作也适用于那些使用后台导出导入功能进行搬家的朋友们。

另外注意一点,以上操作虽然会整理清楚站内的信息,但可能会导致您 RSS 订阅的列表文章位置发生改变。

顺便说一下,附件在迁移的过程中,可以从远程的服务器直接下载到本地。
当相应的目录中存在同名文件时,将会自动从命名。
而且,附件虽然导过来了,也许您还需要编辑一下那些插入了图片的日志。
免得老站点关闭后,那些文章中的图片无法显示。

Comments Closed.