首页 > 我的原创 > pjblog完美转换wordpress

pjblog完美转换wordpress

2009年4月19日 发表评论 阅读评论 查看 37,977 次

上周我把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地址/

转换核心来自JAY的pj2wp,其他部分来自pjblog

在其的基础上,我修改了一些地方,比如去掉了用户数据转换部分,重点修改了pjblog的ubb处理函数:

1.img标签,修改成<img src="" />的形式。

2.swf|wma|wmv|rm|ra|qt等标签,这个比较难处理,我偷懒改成了<br /><strong>媒体文件地址</strong><br />这样的。

3.url标签,这个好像没怎么改,去掉了rel=external这个属性。

4.color|size|font|b|i|u|s|sup|sub等标签,全部按照xhtml标准改了。

5.down和mdown标签,统一改成<a href="" target="_blank"></a>的形式。

6.code标签,改成<code></code>这种。

7.quote标签,改成<blockquote></blockquote>这样的以适合wordpress样式。

8.reply标签,这个是新版pjblog在回复中用的,我改成了<blockquote>某人 于 某时间 回复:<br />内容</blockquote>,可以参考我blog的样子。

9.hidden|html|list等标签,我没用过,就没改了

好像就是这么多了,其他可能还改了一点点,已经不记得……

你可以自己去修改“ubbcode.asp”这个文件,改成喜欢的形式。

下载pj2wp.rar镜像

分类: 我的原创 标签: ,
  1. 2009年4月19日18:52 | #1

    Wonderful。 我是沙发吗?

  2. 2009年4月19日19:19 | #2

    Wonderful。 我是板凳吗?

  3. 2009年4月20日09:31 | #3

    请问你的右上角的那个RSS订阅Jquery是怎么实现的?我非常想有那种特效,恳请博主赐教啊。我下次再来啊。

  4. 2009年4月21日12:55 | #4

    我又来了,很想看到你给我的回复,有点失望,我没有看到。
    希望你能告诉我,谢谢呢。
    以后还会来的哦!

  5. 2009年4月21日13:26 | #5

    @蓝蓝小雪

    @陈华

    @mtxt
    这个效果是inove主题自带的,我也不知道怎么实现,你可以去www.neoease.com问问作者。

    @mtxt
    不好意思,我最近很忙,刚刚才看到。
    如果填写了正确email会收到回复通知的:)

  6. 2009年4月21日13:35 | #6

    哈哈,我手机接到你的回复了,谢谢了。

  7. 2009年5月2日20:33 | #7

    我记得我写了很长一段的使用说明和注意事项咋没了

  8. 2009年5月2日20:49 | #8

    @JAY
    有些地方不同,为了避免误导,所以我去掉了。
    PS:你不会怪我吧……

  9. yaker
    2009年9月4日18:33 | #9

    UBB的处理可以参考下aw的版本
    http://www.awflasher.com/blog/archives/800

  10. 2009年9月5日22:06 | #10

    @yaker
    唉,我当时在转换的时候请教过aw一个正则问题,结果人家懒理得我……

  11. yaker
    2009年9月5日22:37 | #11

    @Black-Xstar
    汗,aw最近在创业吧,比较忙~

  12. 2009年12月19日15:50 | #12

    博主的这篇文章很受用,本人也准备换到WP了,也在为ubb标签格式头疼。

  13. 米拉
    2009年12月26日20:01 | #13

    可惜,我的是PJBLOG3.6,用这个能导出为SQL,可转到WP 2.9就不是,提示:
    错误

    SQL 查询: 文档

    INSERT INTO wp_posts (id, post_author, post_date, post_date_gmt, post_content, post_title, post_category, post_excerpt, post_password, post_name, to_ping, pinged, post_modified, post_modified_gmt, post_content_filtered, guid, post_mime_type, comment_count) VALUES(2, (SELECT ID FROM wp_users WHERE user_login = 'admin'), '2007-11-05 11:22:40', '2007-11-05 11:22:40', '周六下午又和小B啊猪打了33场JJC,22胜11负,其中包含我的一次掉线

    这次的感觉熟练多了,自己在战场里面打打杀杀了好久,虽然操作不好意识不风骚跑位也不YD,可是遇到的队的Rating似乎都很低,输了就-19,赢了才不过10~13,有点郁闷,所以成绩还不错可也只打到1634

    遇到几个问题
    1. 我是明显的首次被集火对象,还是不大会绕柱子,而且对自己的PK能力太不自信,一般一被集火就有点犯傻..特别怕的是ZS和DZ
    2. 最后次输掉时是自己VS一个FS,我是全技能的,�[...]

    MySQL 返回:文档
    #1054 - Unknown column 'post_category' in 'field list'

    ~-~

  14. 2009年12月26日20:22 | #14

    @米拉
    安装个低版本的wordpress就行了,数据库结构不同的。

  15. 米拉
    2009年12月26日20:24 | #15

    @Black-Xstar
    wp2.7.1安装的时候就出现一堆错误..

    Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\wordpress\wp-settings.php on line 520

    Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\wordpress\wp-settings.php on line 535

    Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\wordpress\wp-settings.php on line 542

    Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\wordpress\wp-settings.php on line 578

    Deprecated: Function set_magic_quotes_runtime() is deprecated in C:\xampp\htdocs\wordpress\wp-settings.php on line 18

    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\wordpress\wp-settings.php:520) in C:\xampp\htdocs\wordpress\wp-login.php on line 255

    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\wordpress\wp-settings.php:520) in C:\xampp\htdocs\wordpress\wp-login.php on line 267

    折腾了好几小时了..

  16. 2009年12月26日20:26 | #16

    @米拉
    这个应该是环境问题吧,最好在LAMP下操作。

  17. 米拉
    2009年12月26日20:52 | #17

    2.9没有这个问题...

  18. 2009年12月26日21:40 | #18

    @米拉
    那我也没办法了。
    还是搞个LAMP吧。

  19. thyme
    2010年11月22日00:22 | #19

    为啥我不能保存这个文件呢

  20. 2010年11月27日15:07 | #20

    wordpress确实很好用哦。

  21. 2010年12月22日08:26 | #21

    能说下,数据库是在那个目录下嘛?我怎么在blogDB就找到asp文件。

  22. 2013年2月27日11:27 | #22

    谢谢插件,很好用.

  1. 2010年3月10日17:50 | #1
  2. 2010年8月30日06:35 | #2
  3. 2010年11月5日13:07 | #3
  4. 2011年2月11日19:59 | #4
  5. 2011年11月28日16:56 | #5
  6. 2011年12月7日14:16 | #6
  7. 2013年6月8日02:13 | #7
  8. 2013年10月12日11:07 | #8