光看标题你可能不是太清楚具体的情况,所以三好菌就先把自己的需求详细描述一下:
三好菌想要放弃之前的“我爱Windows8”网站,但是其中的某些资源(例如“Windows8主题”)在Windows10中依然有效,并且这些文章都是三好菌一个字一个字码出来的,所以全部丢弃着实可惜。于是,三好菌就想把其中的部分文章导入到“Win10专业网”中。但是文章的分类目录、标签、标题、正文部分内容,甚至固定链接都需要做修改才行。
还是以把“我爱Windows8”网站的“Win8主题”分类目录的文章导入“Win10专业网”的“Win10主题”分类目录为例,需要修改的地方有:
- 分类目录:“Win8主题”改成“Win10主题”
- 标签:“Win8.1主题下载、Windows8主题”改成“Win10主题下载、Windows10主题”
- 文章标题:“Win8.1”修改成“Win10”
- 文章作者:“Microsoft酋长”改成“MS酋长”
- 文章发布日期:改成“Win10专业网”建站之后的日期才合理
- 文章内容:“Win8.1”修改成“Win10”
- 固定链接:http://www.52windows8.com/%category%/%post_id%.html格式修改成http://www.windows10.pro/sample-post/格式
面对这几百篇文章,如何才能效率既高,又不易出错呢?可能对于数据库高手来讲不在话下,可是对于三好菌来说,纯粹操作数据库还真怕玩不转,尤其是风险太高。
想必有这个需求的不是太多,所以三好公民没有找到现成的教程,只好自己琢磨。本来想尝试采集软件,但是觉得可控性不好。于是,就决定还是用WordPress自带的“导入/导出”工具靠谱。倡萌已经分享过《WordPress自带的导出导入功能使用教程》,所以三好菌不再赘述导出导入的方法,下面只详细分享一下如何借助它实现在两个不同WordPress网站间转移文章的目的。
这就需在转移的过程中来做手脚,也就是把导出的数据先修改成符合我们需要之后再导入新站点。WordPress导出的是xml格式的文件,三好菌用Notepad++打开它,下面展示一下一篇文章的标题和正文内容部分。如图:
你可以很轻松地用批量替换的方法把标题和正文内容中的“win8.1”替换成“Win10”。但是文章链接和发布日期、分类目录、标签等却需要修改正文后面的元数据部分。如图:
<wp:post_id>
文章ID,为了避免ID重复,建议修改成比新网站最新的文章ID还大的数字,否则有冲突的风险。
<wp:post_date>
文章发布日期
<wp:post_name>
固定链接中显示的文章标题。建议把这里修改成简短一些的英文,否则导入之后文章的链接就变成了“http://www.windows10.pro/汉字文章标题的编码/”,很长;
<category domain=”category” nicename=”themes”><![CDATA[Win8主题]]></category>
分类目录,除了要修改汉字的分类目录名称,还要修改nicename,也就是分类目录的别名,修改成新网站里分类目录的别名,否则即使汉字名称相同,导入之后文章也会另起炉灶,在另一个同名的目录里。
<category domain=”post_tag” nicename=”windows8-1%e4%b8%bb%e9%a2%98″><![CDATA[Windows8.1主题]]></category>
文章标签。同样要修改标签名称和别名。
这其中能够批量修改的有“文章标题、发布日期(年份)、分类目录、标签、正文中的字词”,需要逐一修改有“文章ID、固定链接里的文章标题”,所以总体上修改效率还是比较高的。
细心的读者可能会说,怎么没见修改文章作者啊?其实不用这里改,导入的时候指定新作者就可以了,后面会讲到。不过文章正文中的作者名称还是要在这里批量修改好的。
修改完成之后保存,然后就可以在新网站中导入了。
看到了吧,只需“将日志分配给现有用户”就可以实现改作者了。
不过这里有一点比较遗憾,就是“下载并导入文件附件”选项,三好菌勾选后并没有实现。后来又一篇文章一篇文章地用Hacklog Remote Image Autosave插件远程下载到文章里的。不知道有没有更智能的方法,请大家推荐一下。