从WordPress转到Typecho,首先要建立Typecho博客,建好后,首要的就是导入数据,这里选用Wordpress To Typecho插件直接将WordPress文章、评论、分类、标签等全部导入Typecho。
数据迁移
下载插件Wordpress To Typecho,并上传到/usr/plugins目录下。
这个插件是Typecho官方2014年前发布的,插件版本为(v1.0.3 Beta),仅适用于WordPress 2.7,但实际上WordPress 6.3也能用。
- 登录Typecho后台,进入菜单【控制台】→【插件】,将Wordpress to Typecho插件启用
- 进入该插件的设置界面,填好WordPress所在数据库的地址、端口、用户名、密码、数据库名称、表前缀,并【保存设置】
- 进入菜单【控制台】→【从Wordpress导入数据】,此时会看到导入提示界面,点击按钮【开始数据转换】即可
- 当系统提示转换成功后,数据就全部迁移到了Typecho
- 完成后,可以禁用或删除这个插件
如果转换失败,系统会给出失败原因,很多情况是因为数据库设置错误导致的,只需重新设置WordPress所在的数据库信息即可。
WordPress to Typecho插件转换数据可能会出现database query error报错,需要把MySQL的严格模式关闭。
mysql -u root -p SET GLOBAL sql_mode=''; exit;
再次尝试数据转换,便可成功导入数据了。
还原文章图片、附件
- 将WordPress的wp-content/uploads目录复制到Typecho的usr/uploads目录,注意保持目录结构不变
- 利用SQL语句完成图片路径的替换:
update typecho_contents set text=replace(text,'wp-content/uploads', 'usr/uploads')
新网站设置
导入数据库文件后,原来WordPress站点的文章、分类、标签、评论都完美导入到Typecho站点了,但网站标题、副标题等都没有,此时就需要在【设置】→【基本】中进行相应的设置。
Typecho设置永久链接后,需在服务器或者虚拟主机设置伪静态规则。
Apache环境下伪静态规则:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
使用方法:在网站根目录创建.htaccess文件,将上述规则复制粘贴到.htaccess中即可。
其他问题
Q1 这篇文章不是由Markdown语法创建的, 继续使用Markdown编辑它吗?
出现这个问题有可能是,数据是从其他地方导过来的,文章正文开头缺乏一个特殊的语法内容:<!--markdown-->。
这个语法内容决定了该篇文章是否采用Markdown语法进行解析。
解决问题:在未开启Markdown语法解析的文章正文开头都加入该语法内容:update typecho_contents set text=concat('<!--markdown-->', TEXT);。
Q2 如何将JSON格式的数据导入到WordPress数据库中?
解决问题:可以使用WP Import Export Lite插件将JSON格式的数据导入到WordPress数据库中。
以上就是从WordPress迁移到Typecho的整个过程。

评论