从 WordPress 迁移数据到 Mix Space

2024 年 10 月 9 日 星期三(已编辑)
244
5
这篇文章上次修改于 2024 年 10 月 16 日 星期三,可能部分内容已经不适用,如有疑问可询问作者。

阅读此文章之前,你可能需要首先阅读以下的文章才能更好的理解上下文。

从 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 了。

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...