wordpress,drupal二者比较 drupal 显得更加抽象一些,这也使得它更加灵活。
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
taxonomy 中文是分类法,分类学 的意思 taxonomy [tæk'sɑnəmɪ]
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 两者的作用都是定义外观,使用起来大同小异。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 drupal实在是太方便了,太灵活了,wordpress虽然可以借助插件实现很细的权限控制,但是还是比不了drupal内在就支持灵活的权限控制。drupal内置的权限控制可以创建不同的角色并赋予不同的权限,很多在wordpress里做起来很繁琐的操作在drupal变得非常简单