WordPress,插件和原生代码,你选哪一个?
玩WordPress也有一阵子了,纯是个折腾,用过许多的插件,也自己弄过皮肤,也写过两个插件,于是开始有了一些疑问,正如很多博友都在争论的,我们到底是要用插件还是用原生代码?
其实这还真不算个问题,爱用哪个用哪个吧,可要是真细想起来,这又是个很重要的问题,依据六秒定律,我的博由于使用了大量的插件,在六秒内不一定能够完全展示在大家的面前,那为什么有人就行呢?嗯,这里还有一个网速问题,比如我的空间都是在国外的,那堆数据包不远万里来到中国,颇有白大夫的国际主义精神,与国内的那些三线、双线机房比不了啊,呵呵。
先说说插件比原生代码的优势吧:
我们为什么要选择插件?因为插件提供了一些增强性的博客功能,其实这些功能原生代码也完全可以做到,但几乎所有的原生代码需要修改到你的皮肤(或说主题)文件中,一旦你换掉了现用的主题,那么你要重新去添加那些原生代码,而插件则不需要这样,无论你换哪个主题,插件该有的功能依然存在,或许不需要你改动任何地方,或许你只要稍稍改动你的主题就完全可以,这是插件比原生代码优势之一;
优势之二,可定制性与通用性。插件之所以能够公开发布,并让任何一个博客来使用,其最大的功效是option,所谓option其实就是修改插件的设置参数,并将这些参数应用到插件里,大部分插件都提供了option设置,仅有一小部分插件因无需参数或功能单一而省略或不必去进行特别设置,有了这个option之后,你、我、他,我们每一个使用这个插件的人都可以根据自己的需要来进行设置,这些可以说是原生代码所不能做到的,或者是没有必要做到的,因为什么呢?原生代码在于自我性,其通用性比较差,因为并不是所有的人都懂在哪里加入代码,并不是所有人都有折腾代码的癖好。从定制性来讲,虽然原生代码也可以去写个option,但有那必要吗?如果那样,就发布成插件让大家使用吧,对于自己使用的情况,如果你做了option设定,并通过option来修改你的设置,那与直接修改代码又有什么大的区别呢?
优势三,升级、维护与卸载。其实这方面的优势与第一优势的主题是几乎相同的,笼统的说就是方便,作为一个插件,无论是在调试、修改或者放弃都是非常方便的,不用就删了它,修改或调试只要打开插件的文件就可以了,相比之下原生代码却要一次又一次的去在主题文件或其它文件里翻找,说不定还会与某个函数冲突,呵,曾经做我那第一个主题时我就碰到过这样的事情。
由以上来看,插件比原生代码可要好多了?也不一定,我们再来看看它的不足之处吧。
不足之一,过于庞大。一个好的插件除去考虑其主要功能外,最需要考虑的一点就是公用性(通用性),你所发布的插件(这里单指WordPress的插件)可能会用到任何一个版本的WordPress里,每一次的WordPress升级都会有可能某个WordPress公共函数被放弃或被改变,那么你的插件是否能适应?不能适应也就会被用户放弃,于是,为了能有良好的通用性,你不得不考虑周全,将PHP5支持的与PHP4不支持的一些函数通过自己的代码来实现,将WordPress某版本以下不支持的函数也转换一种方式,那么这样一来,可能一个小小的问题仅需两三句代码就能搞定的事情,在你的插件里要多出许多,由此就会造成体积庞大,代码冗余,但这些却完全不能避免,很无奈。原生代码则没有这个弊病,因为这个原生代码是为你单独定制的,而且大多原生代码都本着简单化的原则来写。
不足之二,加载外部JS代码过多。很多不错的插件都有加载一些JS,或者因为方便,或者因为习惯,再或者因为必需。而对于使用者来说,如果一个站使用了过多的插件,而这些插件又大部分都有自己的JS加载,那么通不过六秒定律的站可能会很多很多,除去这一原因之外,很多插件都加载了一些公用的JS,但不是每个插件都能完全精准的判断那些公用JS是否被其它插件已经加载了,于是重复加载(这点我只是猜想,因为我没有碰到过,所谓的重复加载只是逻辑理论上的假说),这样一来你的一个小小的博客又添上了重负。而原生代码由于定制了一些东西,即使加载某个JS,也会要考虑现有的环境,或者将JS加到已加载的其它JS里,或者仅在需要是加载。
不足三,功能过于周全却不实用。可能大家都碰到过这个问题,某个插件非常好,大家公认的好,但真的装上了却不是那么回事,为什么?因为每个人的应用点不同,同一个插件,你可能只用到它的A功能,而它的B功能你可能觉得不如另一个插件,于是你启用了两个插件,或者因为对插件和WordPress的不熟悉,一个非常好的插件在你眼里只需要其中单一或所有功能中的一部分。这样一来,每一个插件不能做到尽才而用,又是过于浪费了。于是你总是会想,为什么某某插件不能就写这一个或这几个功能呢?当然不能啊,插件的作者有自己的想法,有考虑其使用性的想法,有扩大化想法,那么当然是越全越好,越能尽多利用插件本身代码优势越好。原生代码呢?没有这些烦恼,你用一,那就加一,用二就加二,用什么加什么,不存在这些问题,呵,因为它是为你定制的。
说了这么多,插件与原生代码孰优孰劣?呵,实话说,没有优劣之分,完全是看使用者的考虑了,你需要,那它就是优,你不需要那它就是劣。在今后的文章中,我可能会写一些插件与原生代码的对比,当然,所谓的对比也只是我个人的分析,毕竟能力有限,也就当是给大家的扫盲贴,好了,下次见。


不用看了,我选代码!
@万戈
呵呵,老万,你有一个自己的好主题,可不是大家都有啊,所以说呢,有些东西不可太极端,回头我要是找到了什么好的原生代码一定要告诉你,呵,就冲你这个折腾代码的劲儿,也得告诉你,哈哈,多谢捧场。
@admin
哈哈,那我就先谢啦!
@万戈
呵,不客了,看来mail to commenter在这里配合得挺好。
我也觉得代码可能会好一些。。。
@冰剑
从定制方面来讲,代码要好,从通用性来讲,插件要好,主要看各自的需要了。