Emlog转WordPress详解
其实早就萌生了转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 服务美化友情链接
UPDATE1:取消了个性化友链,修改模板不符合插件化的原则,不利于升级模板。
UPDATE2:彩色标签云方法:
后台编辑 主题 的 functions.php , 输入以下代码
$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);
支持下。我想问下 EMLOG4.2.1 可以用这个转换吗?
之后不用emlog了,所以没再研究。
我今天用这个办法转成功了,不过评论时间那些不会弄,哎呀,只要文章神马的过来就行了,
那z-blog相对emlog呢?
不好意思,没研究过z-blog。
这个转化操作目前,不敢尝试有挑战性,回头本地测试下。咨询个问题:为什么本地搭建PHP测试环境,老是提示80端口被占用呢?
你装apache等其他占用80端口的软件了吧。
冰河。关于你说的拿个博主回复的内容怎么转换。我现在是从EM转到WP。其他的都转的差不多了,就分类有一个没转过来。评论也有。还有你说的评论时间问题我也存在
我博客里有我的QQ,如果需要可以加我探讨。请注明emlog
嗯。我加你了啊。 330847315
为什么我转换后后台只显示我文章和评论的数目,而文章一篇也没有?
数据库里有文章吗?wp和em的版本对吗?
外表还是wp好,但简洁还是em做得好。
em绝对轻量级。用em渴望wp的强大,换了wp又怀念em的速度
哎 博主辛苦了 分享了这么多…………..
看来大家的wp情结很严重啊
折腾够了,想找个安稳的程序。
总是折腾的事情,不过看着主题很简洁
这个前台简洁,后台特别强大!