node + content_type VS page & post
drupal里把内容抽象成node,node就是一个数据结构,有作者、发布时间、具体内容等等,而根据不同的content type则可以附加不同的额外的信息和权限控制。相比之下,wordpress则显得有些死板,它只有post和page,其说说起来post和page本质上并没有什么不同,区分出来也没太多意义,反过来说,只有2种类型供选择又显得很不足,其实这也不能怪wordpress,本来wordpress的定位就是blog程序,而drupal官网上就说了drupal更倾向于CMF
taxonomy VS tag + category
drupal里没有tag和category的概念,就是taxonomy,你把taxonomy具体化成什么是自己决定的,你定义一个taxonomy,并认为它是一个category,那它就是一个category,如果你认为它是tag,那它就是tag,这无疑提供的很大的灵活性,taxonomy从本质上讲不过就是node的一种附加信息(metadata),你认为它是什么它就是什么。而wordpress则硬性区分了category和tag,其实wordpress底层数据库里的表名就叫taxonomy,由此可以看出drupal和wordpress存储taxonomy是一样的,不同之处在于wordpress把taxonomy的概念具体化了,如果作为blog,这种具体化省去了我们很多时间,很方便,但是对于二次开发来讲,则限制了灵活性
region VS sidebar
drupal里的region大概相当于wordpress里的sidebar,相同之处在于它们都是一个容器,作为一个包装器的存在,但是不同之处在于drupal可以定义更多的区域,比如head和foot等等,而wordpress里就是sidebar了,head和foot都是通过template来完成的
block VS widget
drupal里的block则相当于wordpress里的widget,都是被包含在一定的容器内,drupal里面叫region,wordpress里叫sidebar,它们都是用于一些比较小的功能区块,比如显示在线人数,登陆框等等
module VS plugin
这两者在wordpress和drupal里没什么其别,都是扩展功能的东西,它们都是用hook机制,不过hook的实现有很多不同,plugin用的是一个字符串来标示hook到那里,什么时候该调用哪些函数,而drupal里则用一些命名规则来替代,个人还是喜欢wordpress的方式,因为更明确一些,始终觉得靠命名规范的东西比较讨厌
drupal theme VS wordpress theme
两者的作用都是定义外观,没什么好说的,使用起来大同小异。对于developer来说,区别还是挺大的,总体的感觉,wordpress做主题的时候,是从上到下,从左到右,是一种视觉上的划分,而drupal则是由外到内,有里向外的感觉,是一种逻辑上的划分。wordpress做主题的时候使用一些API来获取信息,然后展示信息,drupal里面使用一些预先初始化好的变量
drupal i18n VS wordpress i18n
i18n的时候wordpress使用__()和e(),drupal使用t(),t()相当于_(),要想直接打印还得print。wordpress里如果要i18n需要先找个工具scan一遍源代码,在编辑POT生成MO,在load进来,drupal这里做的比较简单,有一个locale的插件,自动scan代码,找到需要替换的字符串,然后在线编辑,直接翻译,省去了不少麻烦
drupal role VS wordpress role
这是我相比wordpress最喜欢drupal的地方了,实在是太方便了,太灵活了,wordpress里虽然可以借助插件实现很细的权限控制,但是还是比不了drupal内在就支持灵活的权限控制。drupal内置的权限控制可以创建不同的角色并赋予不同的权限,很多在wordpress里做起来很繁琐的操作在drupal变得非常简单,爽死了。
说明总结
正如在站长站看到的一篇文章——不要纠结选择哪个开源CMS好,任选一个开发,其他会安装。我的选择:“加强Drupal开发——为了提升,保持WordPress开发——因为太实用,放弃Joomla——因为时间不够。”
Leave a Reply