Emlog转WordPress详解

Posted by 冰河 at 14:57 Add comments 31,697 Views
十一 242010

其实早就萌生了转WP的念头,但是迟迟没有动手,一是懒的折腾,二是Emlog这一轻量级的开源博客程序确实好用。EM的缺点也是优点,轻量级必然功能要相对弱些。虽然有时候可以自己折腾,但是自己精力有限,而且频繁更改源代码会导致博客可维护性下降。WP的优点众所周知,功能强大,插件也多。很多人诟病WP臃肿,运行效率低,占用资源多,但是从软件开发的角度来讲,WP主题模板化、功能插件化是必然的趋势。我对插件化产生好感是因为以前做的一个项目,使用了开源搜索引擎Nutch,里面的除了内核,其他功能都是用插件实现,二次开发很方便。另一个例子就是Firefox,本身功能一般,但是配合万能的插件,很好很强大的说。使用插件的缺点就是接口多,调用多,运行效率自然就打折扣了,资源占用必然也会飙升。

废话不多说了,说下我的转化过程吧。

1.在本地同时安装EM和WP,方便数据库操作和调试。Emlog版本3.5,WordPress版本3.01。软件版本和2中使用的软件有关。其他版本不保证能成功。Emlog 3.4用户建议先使用官方升级包升级到3.5。

2.使用“emtowp1.0-emlog转wordpress博客的利器“进行转化。

大家可以去原作者博客去下载,也可以点这下载:emtowp.zip

使用方法比较简单,大家看图就知道了:

【emtowp功能支持】

①.转换博文  ②.转换评论

③.转换附件 ④.转换分类

⑤.转换标签⑥.转换link

到这里基本的转化就结束了。转化完毕后有几个问题:

1.EM里自己新建的页面都别转化成了WP里的文章,这个手动删除,再在WP里新建对应的页面即可。

2.文章和类别的关联有问题。比如文章A属于B类,但是在类别B里却看不有文章A。可以查看文章->选择类别->批量编辑,修改分类即可。

3.评论的时间没有转化。即Emlog里comment表的date字段没有转化到WordPress的comments表的comment_date和comment_date_gmt里。没有时间显得评论很乱。

4.评论的ip没有转化。这个也不是很重要。

5.博主回复好像都丢失了。

345中的问题只能自己写SQL解决了。有一个问题就是两边评论的映射关系不好找了。仅比较评论的内容判断两个评论是否一样会漏掉一些。我用java写了个循环。对于WP中的每条评论,找到其在EM中对应的条目,获取时间和ip,然后

(a)更新WP中的数据。这里注意两个小问题:一是EM中的时间是long类型,要转化为Timestamp类型。二是Emlog 3.4里的long类型时间是GMT时间。

(b)判断其reply是否为空。如果不为空则在WP中插入一条评论,评论的内容就是reply的内容,评论的其他数据比如comment_author的几个相关字段自己定义就行。评论的comment_parent就是WP中那条对应的字段。

上面的2个步骤最后好一次成功,因为comments表的comment_ID是自增的。写了再删ID就不连续了。这仅是个思路,对应的java代码我就不贴了。

至此数据基本就转化完了。顺带写一下个性化 WordPress 友情链接页面的思路:

1.修改page.php建立links.php模板

2.利用wp_list_bookmarks函数输出友链

3.修改CSS和不要的函数,美化友链显示。

对应的教程很多,给出几个供大家参考:

个性化 WordPress 友情链接页面获取 Favicon 服务美化友情链接

wp_list_bookmarks 链接显示函数详解

wordpress友情链接页面的实现

UPDATE1:取消了个性化友链,修改模板不符合插件化的原则,不利于升级模板。
UPDATE2:彩色标签云方法:

后台编辑 主题 的 functions.php , 输入以下代码

function colorCloud($text) {
$text = preg_replace_callback(‘|<a (.+?)>|i’, ‘colorCloudCallback’, $text);
return $text;
}
function colorCloudCallback($matches) {
$text = $matches[1];
$color = dechex(rand(0,16777215));
$pattern = ‘/style=(\’|\”)(.*)(\’|\”)/i’;
$text = preg_replace($pattern, “style=\”color:#{$color};$2;\”", $text);
return “<a $text>”;
}
add_filter(‘wp_tag_cloud’, ‘colorCloud’, 1);

相关日志

19 Responses to “Emlog转WordPress详解”

  1. 支持下。我想问下 EMLOG4.2.1 可以用这个转换吗?

  2. 那z-blog相对emlog呢?

  3. 这个转化操作目前,不敢尝试有挑战性,回头本地测试下。咨询个问题:为什么本地搭建PHP测试环境,老是提示80端口被占用呢?

  4. 冰河。关于你说的拿个博主回复的内容怎么转换。我现在是从EM转到WP。其他的都转的差不多了,就分类有一个没转过来。评论也有。还有你说的评论时间问题我也存在

  5. 为什么我转换后后台只显示我文章和评论的数目,而文章一篇也没有?

  6. 外表还是wp好,但简洁还是em做得好。

  7. 哎 博主辛苦了 分享了这么多…………..

  8. 看来大家的wp情结很严重啊

  9. 总是折腾的事情,不过看着主题很简洁

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Protected by WP Anti Spam
© 2009 - 2024 冰河的博客