Joomla 还是wordpress

wordpress已经用了一年多了,被其魅力深深折服,尤其是大量的插件和主题,尤其是插件,有很多非常非常牛,个人觉得wordpress是和网络营销结合最密切的了!

美中不足的是发现wp做出的网站总是有点像Blog,如果想改成cms,太费时间了,太麻烦了,尤其是对于不懂css+div的人来说。

没几天发现Joomla要比wp复杂多了,模块,菜单,组件之类的。有人说千招会不如一招熟,应该专注在一个网站程序上,达到精通的程度。

那到底是继续深入挖掘wp,并且认真学习css+div,还是掌握joomla比较好呢?我看国外好多人用wp,专门的wp网络营销插件和主题,CB上很多商家也都是用wp,甚至有的很难看出来是wp做的,比如国内的donews。

话说,开源内容管理系统(CMS)是互联网应用中的一个大家族,时至如今,当我们希望找到一款在稳定性、性能表现、环境要求等方面都不错的CMS时,会发现有很多选择。

曾经,对CMS的选择正确与否基本取决于项目需求,但是现在的大趋势是,几乎所有主流CMS都越来越明显的进入了“核心框架+足以应付一切需求的扩展插件”的模式。

所以鄙人以为,当前对CMS的选择基本就是一“心智模型”的选择过程:在我们心目中,当前项目站点应该是怎样运作的,它应该提供给用户及站长怎样的功能和机制,基于这样从使用者出发的心智模型来挑选CMS。(我怎么觉得这就是基于项目需求呢…玩概念,又玩概念。)

本文中,我们将从心智模型的角度出发,主要探讨WordPress与Joomla在主题模板、核心扩展等方面的区别。

WordPress和Joomla是两款绝对主流的CMS,各自都拥有庞大活跃的开发者社区,文档教程方面也都不错。

在设计师圈子里面,WordPress通常是首选,后台UI很经典,前台主题模板方面更是不用多说,数量质量都是一流的。

Joomla继承自Mambo,直到1.5之前,Joomla都保留着Mambo效率低下,输出代码语义混乱的特色;接下来的Joomla 1.6中,用户权限管理及分类机制等方面都会有很大的改进。

两者在模型方面有一些显著区别,当开发者从Joomla转到WordPress时,会发现在主题模板代码方面的工作量增大了不少,反之,从WordPress转到Joomla呢,会发现扩展性和自定义性有所降低。然则这一切的一切,都和模型有关。

WordPress的主题模型是基于per-view结构的;在每个主题中,对于不同的视图模式,比如文章列表、单篇文章或是存档页面,它们都有各自的视图文件,彼此独立;这样的机制允许开发者根据不同的视图模式编写不同的输出,但是缺点也是显而易见的,就是会有大量的重复代码产生,可以重用的只有模块化的header、footer等。

有些不同的视图模型未必需要有不同的表现样式,比如存档列表页面、文章分类列表页面。针对这种状况,WP的主题会根据继承关系组织起来,相对通用的视图是特殊视图模式的基础;其中最通用最基础的视图文件就是index.php了,对于一个主题的视图文件来说,只有该文件是真正必须的。有关继承结构的详细解释。

WordPress主题的循环结构(Loop)及模板标签(Template Tags)

为了更好的理解WP主题的工作机制,我们来具体看下loop和模板标签。

文章列表和单篇文章的所有数据都是从loop中提取出来的;每个loop基本就是一个while结构:[code]<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

// post output here

<?php endif; endwhile; ?>

[/code]loop结构中最重要的代码就是the_post()了,它会初始化一个全局PHP对象$post,其中包含了所有的页面数据信息。对于单篇文章来说,所有用来呈现数据的功能都是基于the_post()而存在的。这些功能就是模板标签,它们会以特定的格式输出内容数据。