首页 教程 正文

WordPress迁移到Typecho全过程

2023.8.22 教程 368

从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也能用。

  1. 登录Typecho后台,进入菜单【控制台】→【插件】,将Wordpress to Typecho插件启用
  2. 进入该插件的设置界面,填好WordPress所在数据库的地址、端口、用户名、密码、数据库名称、表前缀,并【保存设置】
  3. 进入菜单【控制台】→【从Wordpress导入数据】,此时会看到导入提示界面,点击按钮【开始数据转换】即可
  4. 当系统提示转换成功后,数据就全部迁移到了Typecho
  5. 完成后,可以禁用或删除这个插件

如果转换失败,系统会给出失败原因,很多情况是因为数据库设置错误导致的,只需重新设置WordPress所在的数据库信息即可。

WordPress to Typecho插件转换数据可能会出现database query error报错,需要把MySQL的严格模式关闭。

mysql -u root -p
SET GLOBAL sql_mode='';
exit;

再次尝试数据转换,便可成功导入数据了。

还原文章图片、附件

  1. 将WordPress的wp-content/uploads目录复制到Typecho的usr/uploads目录,注意保持目录结构不变
  2. 利用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的整个过程。

评论