迁移首要原因必然是 Wordpress 的普及性更加广,Typecho 的确是很轻量级,是个不错的博客程序。
迁移其实说白了就是数据库的迁移,再简单点就是文章的迁移,包括文章标题、文章作者、文章内容、文章创建时间、文章修改时间等,差不多这几样是最重要的,标签的话我没有迁移,因为我的标签不算多。
Typecho 的文章表结构
Typecho 存储文章的表是 typecho_contents
,它的结构是这样的:
Wordpress 存储文章的表是 wp_posts
,它的结构是这样的:
获取文章数据
我的建议是使用 phpmyAdmin 的 export 功能将 typecho_contents
表用 php array
格式导出,这样可以更方便地给 PHP 调用,如果使用其他格式导出当然是可以的,但比这个要麻烦。
转换 Markdown 为 HTML
由于 Typecho 的文章存储方式是 Markdown 格式,我们把其迁移到 Wordpress 数据表中得首先将其转换为 HTML 格式,这里我用的是 Parsedown,当然你也可以用其他的,我觉得 Parsedown 挺好用的。
Parsedown 用法
安装:
Include Parsedown.php or install the composer package.
例子:
$Parsedown = new Parsedown();
echo $Parsedown->text(‘Hello Parsedown!’); # prints:
Hello Parsedown!
Migrate 类
我写好了一个 Migrate
类用于获取导出数据的各个值,不是获取所有值,因为我觉得有的值没必要获得:
1 | require('./app_youngdzeblog.php'); // 导出的文章表数据 |
INSERT
接下来就是直接操作 Wordpress 的数据库了。
1 | require('./Migrate.php'); |
那么,至此你的 Typecho 文章主要数据就能迁移到 Wordpress 了。
不过迁移完成后文章显示还是有各种问题,比如反斜杠滥用,这个我没想到办法解决,只能靠你手动处理了。