Xiaomage's Blog博客平台已由typecho迁移至wordpress

Xiaomage's Blog博客平台已由typecho迁移至wordpress

本文最后更新于1351天前,其中的信息可能已经有所发展或是发生改变。

正如标题中所说的,本站Xiaomage's Blog所使用的博客平台已经在8月6日由typecho迁移到了wordpress,经过不断的调试,一开始暴露出的小问题基本上都得到了解决,因此开贴记录一下下~

迁移原因

先来说说原因吧。typecho经过这么多年的发展,基本的写文章的功能基本上实现的比较完整了,用markdown写起文章来非常顺心顺手。但是很多细节还是稍有缺失,有的功能还不是很完善,整体看起来还是稍微有些简陋。比如,对memcached/redis并没有官方支持,第三方插件则有各种各样的小bug,每次有评论都得手动刷新等等;邮件通知插件就没有一个能成功发信的(当然可能是我设置有问题)等等......

再加上之前的主题使用有一定时间了(大概一年半),虽然也不是很难看,老版质感设计也很漂亮,但那套主题的一些底层实现有些老旧了,比如使用的是bootstrap3,以及设计的时候没有使用css变量,导致夜间模式这个功能很难加上。好不容易实现了Pjax和灯箱,夜间模式这个大坑我实在是填不上了QAQ...

于是心想,干脆换成wordpress吧!看看wordpress有什么变化。上次使用wordpress是6年前了,给一个初中同学做的一个恶搞网站,搭建在一个免费空间上,慢慢的回忆呀!现在早就没了。

wordpress这边我很快就找到了合适的主题:Argon主题 。这个主题中可以看到质感设计的影子,Pjax,夜间模式,平滑滚动,漂亮样式一应俱全,开发也很活跃,一眼就看中这个主题了~

Typecho To Wordpress

经过多方查找,终于找到了一个实现的很好的宝藏插件——ByeTyp。官方的文档说明非常简洁,操作非常简单,下面就是官方的教程(从官网粘的quq)最下面我也会附上官方发布页的链接~

安装方法

访问ByeTyp项目主页:https://github.com/ibadboy-net/ByeTyp 下载最新版的插件。下载后将插件上传并安装到Typecho上。注意上传的时候要为插件的文件夹命名为ByeTyp,否则插件将无法正常运行。

使用方法

启用插件后,按照以下顺序操作,导出当前Typecho的数据。

控制台->数据导出->导出XML文件

当你拿到了后缀为.xml文件的时候你就离成功近了一大步了。接下来你需要将xml文件导入到WordPress中。按照这个顺序操作:

工具->导入->WordPress->运行导入器(未安装的话就先安装)->选择文件->上传并导入->选择导入的文章所属的用户,之后提示是否导入媒体,随便点就行(Xiaomage注:我这里没点,可以不用点上)

之后你就会看到你在Typecho上的文章、分类目录、标签、评论等数据都出现在了WordPress上,但是别急着高兴,因为我们还没能将附件也导入过来。

迁移附件

将Typecho站点中的/usr/uploads目录迁移到WordPress的/wp-content目录下。之后在数据库中替换图片资源路径,执行以下SQL语句:

UPDATE wp_posts SET post_content = REPLACE( post_content, '/usr/uploads/', '/wp-content/uploads/');

至此,大部分数据就从Typecho迁移到Wordpress咯!

手动迁移其他数据

但上面提到的插件貌似不能转移全部数据,比如评论区的UserAgent字段就不能被转移,主题自带的评论UA显示功能就无法正常显示之前的评论的UA。我尝试在ByeTyp插件中合适的地方加入导出UserAgent字段的代码(在276行后添加一行,代码为<wp:comment_agent>{$c['agent']}</wp:comment_agent>),生成的XML文件中也有UserAgent字段,但导入XML之后这个字段...在数据库中仍然是空的...那咱就手动导入吧!

  1. 先将原typecho数据库中的typecho_comments表导入到wordpress数据库中。这一步应该不难吧~直接phpmyadmin中导出再导入就OK啦。其他数据库管理软件也很容易做到。
  2. 编辑wordpress数据库中wp_comments表的属性,把comment_agent的length加大一些,否则可能varchar的长度会不够用。
  3. (可选)统一数据库中的排序规则。我自己一般常用utf8-mb4排序规则,但word press使用的是utf8mb4_unicode_520_ci,需要转换一下。这一步在phpmyadmin中先选择wordpress数据库,再选择操作选项卡,排序规则中选择utf8mb4_unicode_520_ci,勾上“更改所有表排序规则”“更改所有表列的排序规则”两个对勾确定就OK啦!
  4. 上面那一步进行之后,可能会报错“1067 – Invalid default value for 'comment_date'” 这时可以执行SQL语句

show variables like 'sql_mode' ;

如果结果中含有“NO_ZERO_IN_DATE”,“NO_ZERO_DATE”,则说明当前数据库配置不允许日期为0的数据插入。然而wordpress中默认的comment_date就是0,这就与数据库配置冲突了。可以用下面的SQL语句来解决,改变数据库配置:

set global sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

最后,执行SQL语句,将typecho中的UA导入到Wordpress中:

UPDATE wp_comments,typecho_comments SET wp_comments.comment_agent = typecho_comments.agent WHERE wp_comments.comment_content = typecho_comments.text

语句运行完,就大功告成啦!

参考资料

无缝从Typecho迁移到WordPress,支持WordPress 5

stackoverflow上的问答

本文永久链接:https://blog.xmgspace.me/archives/typecho-to-wordpress.html
本文文章标题:Xiaomage's Blog博客平台已由typecho迁移至wordpress
如无特殊说明,只要您标明转载自Xiaomage's Blog,就可自由转载本文。禁止CSDN/采集站采集转载。
授权协议:署名-非商业性使用-相同方式共享 4.0(CC BY-NC-SA 4.0)

评论

  1. jack
    Android Firefox
    18 小时前
    2024-4-19 23:23:55

    现在还能坚持做个人博客的已经很少了,博主的文章都挺好的,虽然更新频率有点低。请问您用的空间一年要多少钱啊?我也想弄一个,哈哈!

  2. wwyxdg
    Windows Chrome
    4 年前
    2020-8-28 13:40:43

    大佬想问下你的网站怎么实现那个作者的框和公告那个放在右面的,默认主题是在左面的

    • 博主
      wwyxdg
      Windows Edge
      4 年前
      2020-8-28 15:53:18

      不是大佬😂,挺简单的,加句CSS代码就可以,在页头脚本那里,向右悬浮就可以了

      <style>
      #leftbar {
          float: right;
      }
      </style>
      • wwyxdg
        Xiaomage
        Windows Chrome
        4 年前
        2020-8-28 18:51:38

        谢谢😂

        • 博主
          wwyxdg
          Android Chrome
          4 年前
          2020-8-30 23:03:07

          新版本发布了,貌似可以直接选择反转页面布局了,我还没更新,作者加上这个功能了,可以试试

发送评论 编辑评论


				
上一篇
下一篇