从 WordPress 迁移数据到 Mix Space
前言 --
Mix Space 是国人大佬开发的, UI 非常现代化,博客和空间的结合体,让人一眼就喜欢上了。
不少在 WordPress 需要插件支持的功能,在 Mix Space 却是原生支持的。
加上本人的博客经过 WordPress (中学无力维护)-> WordPress (高中在学校没续费服务器)-> WordPress (迁移) -> Typecho (迁移) -> WordPress 这么一系列操作后,数据已经乱七八糟了,特别是文章 ID……不知道该怎么说了,总之就是积重难返。
在熟悉了 Mix Space 的功能与数据结构后,我想将 WordPress 的数据迁移至 Mix Space,但貌似没找到对应的教程,于是自己折腾了下。 步骤 --
首先搭建好 Mix Space,不用多说。
其次使用我编写的工具,将从 WordPress 导出的 xml 数据文件转成适用于 Mix Space 的格式:
你可能需要改动代码,以便适配自己的主题数据。本人使用的是 Kratos-pjax,亲测成功迁移。
改动步骤见此仓库的 README.md。如有 BUG,欢迎 PR。
但这时候又涉及到一个问题:PermanentLink,即永久/固定链接,如何迁移?
本博客中使用的是 /[year]/[month]/[day]/[slug].html
的格式,
例如本文的地址为:/2024/10/09/wordpress-to-mix-space.html
迁移到 Mix Sapce 后,它的地址就变成了 /posts/experience/wordpress-to-mix-space
,即 /posts/[category]/[slug]
的格式,
那么[category]
怎么获取?在摸索后,发现 /posts/[slug]
会重定向到 /posts/[category]/[slug]
,我们只需将 /[year]/[month]/[day]/[slug](.html)
重定向到 /posts/[slug]
即可。
在 Nginx 的反代规则之前加上重定向规则,其中 .html 是可省略的:
location ~ "^/(\d{4})/(\d{2})/(\d{2})/([^/.]+)(\.html)?$" {
rewrite "^/(\d{4})/(\d{2})/(\d{2})/([^/.]+)(\.html)?$" /posts/$4 permanent;
}
当然你可能需要根据你所使用的 PermanentLink 规则来改动重定向规则。 后话 --
当然因为我不确定数据是否都转换正确了,我并没有在第一时间迁移到 Mix Space,只是在本地搭建了环境进行检查。
若是检查无误后,本博客应该就会迁移到 Mix Space 了。