Rails导入Wordpress的xml备份
最近在用rails作一个blog系统,不要说我重复发明轮子什么的,就像学程序的人一开始都喜欢对世界说声hello一样,学rails的我就想开发个blog来练手。
话说开发个blog也是相当不容易的,之前虽然把《Agile Web Development With Rails》给看了将近两遍,还看完了《Programming Ruby》和《The Ruby Way》,可是真作起东西来就不是那么个事了。
我做个blog是打算自己拿来用的,所以也想要把在WP上这些文章给导入进去。RSS的内容不够全面,也考虑过直接从数据库来导入的,再就是解析WP后台export出的xml了。不知道一般的方法是怎么做的,我是选择的第三者。。。
解析xml可以用Ruby的标准库REXML,不过效率不是一般的低啊,当然解析我这种小博客的xml是没问题的。最后还是选择了最快的libxml2的ruby绑定(这些都是The Ruby Way上推荐的)。
def import(filename, &block) doc = Document.file(filename) doc.find("//item[count(content:encoded)=1]").each do |item| if (con = item.find_first("content:encoded").content).strip.size > 0 yield item.find_first("title").content, con end end end
ABitNo也会写WordPress插件了
这几天我是真的一直在研究WordPress,与用户有关的那些个代码都从头读了一遍,与插件有关的源码也都看了好几遍,最后发现PHP的代码读起来也还是很不错的。
最大的收获还是学会了自己写WordPress插件,这个其实很简单,官方codex上都有介绍,也有推荐的tutorial。我没有很详细的都看完,只是按照这一个教程Devlounge - How to Write a Wordpress Plugin中说的从头走了一遍。如果想学习写WordPress插件的话,看看那个教程还是很不错的。
按照Devlounge 说的,一个Plugin首先要有好的目录结构,然后还要有好的代码组织方式。下面就按照那个教程中给的方式写一个简单的毫无用处的插件,插件的效果就是在head中加一个注释
<!--ABitNo is here ! -->
Step 1:定义插件的信息
/* * Plugin Name: ABitNo IN Head * Plugin URI: http://abitno.linpie.com/abitno-wordpress-plugin.html * Version: 0.1 * Author: Cedirc Fung * Description: Put annotation 'ABitNo is here' to the header */
做的一个WordPress企业主题
我发现自己最近所有的Blog都是关于Wordpress主题的。。。
虽然是为了钱去做的这些东西,但是在自己做的这几个WP主题中还是有喜欢的,现在这个我就相当喜欢,特别是首页。预览>>
我这几天都在做WordPress主题了
我感觉自己似乎一直在浪费时间,一直都是在给别人做WP主题,当然也是为了赚点钱。每次一开电脑就要打开Netbeans,还有一个为了测试主题而安装的Windows虚拟机。。。
自己想学的都还没有学到,很多的事情都荒废了。不过也学到了点东西,至少更会做网页了,还会了点PHP,算是意外的收获。为了更好的写代码,还学习了一下使用Mercurial,之前我是从来没用过版本控制软件的,因为之前就没写过太多代码。
没有什么说的了,贴一点做主题时用到的简单的代码,说不定哪天有哪位与ABitNo一样菜的朋友会用到。不过想想也不知道哪些代码比较有用,就把我在sidebar里用的几个方法帖一下。
获取WordPress中评论最多的文章
function wp_get_most_commented_posts($limitclause="") { global $wpdb; $q = "SELECT ID, post_title, post_date, COUNT($wpdb->comments.comment_post_ID) AS 'comment_count' FROM $wpdb->posts, $wpdb->comments WHERE comment_approved = '1' AND post_status = 'publish' AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID GROUP BY $wpdb->comments.comment_post_ID ORDER BY comment_count DESC $limitclause"; return $wpdb->get_results($q); }
自己做的新主题上线
WordPress与Discuz的简单整合
最近ABitNo帮人做了一个WordPress主题,要与Discuz整合,下面就简单说一下主要做了些什么以及怎么做的。
ABitNo用的是最新的WordPress 2.7.1 和Discuz 7.0 , 要完成的整合工作主要是用户整合,另外还有在WordPress上显示Discuz的论坛新帖。
先看一下相对简单的论坛新帖显示功能,这有两种实现方案,一种是通过WordPress的Feed函数,另一种就是用Discuz的Javascript代码。
用Feed很简单,在你要显示的地方加入下面的代码就可以了
<?php require_once(ABSPATH . WPINC . '/rss.php'); wp_widget_rss_output('http://abitno.linpie.com/feed', 'items=10'); ?>
如果想用Discuz的JS代码,要先到DZ中设置一下,在Discuz的后台通过工具->数据调用来添加一个主题列表调用模版,然后把生成的JS代码复制到需要的位置即可。
现在看看用户整合这方面。要求是用户在WP用Discuz的用户名来登录,也就是用户注册的号在论坛和WP之前都可以用,然后用户必须在WordPress登录后才能留言。


