pjblog完美转换wordpress
上周我把Black-Xstar's Blog从pjblog转换到了wordpress,经过一周的试用运行良好,把方法分享给大家。
标题上说的完美,只是我认为的完美。根据个人情况,我没有转换标签和用户数据。留言数据因为wordpress默认无这个功能也没有转换。
我原来的pjblog版本是2.8.5.157,转换后的wordpress版本是2.7.1。理论上支持这附近的几个版本。
首先在本地搭好asp环境,或者和我一样去5944申请个免费的用下。
然后在服务器上安装好wordpress,全新安装即可。
下载pjblog的数据库和转换程序。把数据库改成“pj2wp.mdb”放到同一个文件夹:
在浏览器访问“pj2wp.asp”这个文件,出现如下界面:
点开始导出:
把“pj2wp.sql”这个文件下载回来。
打开下载回来的“pj2wp.sql”数据库文件,可以直接用Windows自带的记事本,也可以用相对专业的文本编辑工具。
查找“article.asp?id=”替换成“?p=”,目的是把内链换成新的。这样替换其实一点也不科学,你也可以用正则等高级方法来处理。
查找“attachments/”替换成“http://新blog地址/wp-content/attachments/”,目的是把图片和附件恢复。同样不科学,也可以用正则来处理。
至于还有其他的地方,比如某些UBB标签啊,就根据自己需要进行替换了。我只弄了这两个地方就基本没问题了。
进入安装好的wordpress数据库,找到“wp_users”这个表。
如果blog只有一人写,那么直接修改第一行的“user_login”这个字段,改成原来pjblog的用户名。
如果你的blog是多人一起写的,那么需要给每个人创建用户,否则导入会出错。
接下来回到数据库,把“pj2wp.sql”导入进去,这里需要注意编码和大小限制:
最后把原来pjblog的图片和附件文件夹attachments放到wordpress的wp-content文件夹里面。
如果没意外的话,这个转换过程就OK了,接下去访问新的Blog试试看吧。
还有一个外链问题,我是使用.htaccess来处理的,贴出来给大家参考吧:
RewriteEngine On
RewriteBase /RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^(.*)$ %1.html? [R=301,L]RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]Redirect permanent /atom.asp http://你的blog地址/atom/
Redirect permanent /feed.asp http://你的blog地址/feed/
Redirect permanent /default.asp http://你的blog地址/