作为一名WordPress建站开发者,我为什么坚持尽可能少用插件?

138次阅读
没有评论

共计 3099 个字符,预计需要花费 8 分钟才能阅读完成。

用 WordPress 第十个年头了,做为一个老玩家,并且已经把 WordPress 作为重要谋生手段的我,今天想聊聊我对 WordPress 自己的理念。这些理念并不是出于一时的兴起或者道听途说形成的,而是基于我自己使用 WordPress 这十年的个人感受和经验,基于我自己对 WordPress 的学习历程,从无到有,再经过一些转折而形成的。我并不想做一个倚老卖老的说服者,企图说服大家接受我本文标题的观念,我只是想阐述,为什么在使用 WordPress 若干年头后,我会形成这样的想法。

一年前的我,曾写过这样一篇文章 我为什么不用 Elementor、The 7、Avada、Divi 之类的主题和插件,本文是那篇文章想法的扩展,如果你不同意那篇文章,大概率也不会同意本文。

起初,我是怎么喜欢上 WordPress 的?和所有人一样,基于 WordPress 开箱即用的可用性和方便的扩展性。对这两个特性的最初理解,就是我觉得网站缺少什么功能,大都能很快找到插件,安装上,再设置一下,就能马上启用,这真的太方便了。举个例子,这个网站,最初就是打算用来做我的技术博客的,写技术文章当然要贴代码段啦!WP 主题没有适合代码格式的写法,怎么办?后台搜一下 code syntax,就有一大堆插件可以选,大部分都很好用,选一个安装用户最多的装上就行了。再比如,我嫌默认主题的文章的分页不太好看,搜一下 page navi,又有一大堆插件可以选,逐个打开他们的主页,选一个看上去最顺眼的安装上,就好了。于是,在最初,我理解的开箱即用,和扩展性,都是 WordPres 数以万计的插件带来的。以至于在最初的一两年里,想要实现一个什么功能,我都会直接找插件装上,随着使用过的插件越来越多,也逐渐觉得自己就是个 WordPress 的专家了。

然而,这样的专家并不好当。当一个插件出问题的时候,我会发邮件给插件作者寻求解决;如果这是一款免费插件,那邮件往往是石沉大海的。即使是有商业支持的付费插件,等待作者解决问题的时间往往也是带时差的,更何况得到回复的可能只是最初的问候,解决一个问题是需要多次邮件沟通 + 时差的漫长周期的,少则数日,多则一两个月。糟糕的是,往往更多的问题出现在多个插件互相不兼容的情况下,多个插件的作者往往也是会互相打太极的,这类问题一般都得不到解决。这就使得我不得不放弃某一些正在使用的插件,寻求其他能兼容的插件替代,这并不好找,好在 WordPress 的插件库够大,总能给我这样的人留下希望。然而好不容易寻找到的替代品插件,很可能还是会使人回到上一个轮回中,当前似乎可用,过几个月,它或者别的同时使用的插件有了更新,又变成了互相掐架的局面。

你问我这种情况常见吗?非常常见,因为我做的网站种类很多,除了博客,还有社交、论坛、电商、文库、下载站、B2B 等等,可能用到各种形形色色的功能,所以我很可能用过不下 200 款插件。最终,我虽然也搜集了不少整套的,能和谐共处的插件配套解决方案,比如做一个带订阅功能的下载站,需要用 WooCommerce 和哪些扩展插件配合;再比如做一个带问答功能的论坛,需要用哪些插件组合…等等。然而这类网站做完后,客户可能追加一些简单的要求,比如,让之前那个带问答功能的论坛支持双语言,就足以让毫无支撑的插件积木大厦顷刻崩塌。为什么会这样?因为多语言最成熟的解决方案插件 -WPML,不支持我们正在使用的某一 / 多个插件啊!再比如前面提到的那个带订阅功能的下载站,客户提出能否加一个略微复杂一点的订阅条件,使一部分特指的订阅者可以享受某几款限定商品的组合优惠…拜托,插件做不到这么细腻的设置啊。

这些需求奇葩吗?当然不奇葩。当我做的网站越多,越能理解某些需求提出的背景原因。我也越深刻地认识到,靠着插件搭建出来的网站,根本无法满足定制建站的需求;即使在某些顺利的情况下,满足了最初的需求,我也无法保证能靠着这点找插件的本事,陪客户走过业务增长的长路。想陪着他们走得远一些,我的技能就不能只局限于装个 WordPress,再帮人改改界面了。

于是,在后来的日子里,我慢慢建立了尽量少用插件的原则。从一开始的一点小功能就要装插件,到能自己写出各种业务需求模块去代替插件,都整合到给客户定制的主题里。所以我现在基于 WordPress 开发的网站,往往可以做到只用最少量的插件。

比如电商网站,我只用 WooCommerce 一个插件就行了。对一些 UI 元素定制、基本的电商逻辑干预,都可以摆脱对第三方插件的需求。因为我自己写过用户推荐(affiliate)模块、收藏夹(wishlist/favorite)模块、运费定义模块、用户自定义字段(customer add-on)模块、订阅(subscribe)模块… 我是从一个插件玩家一下子转变成插件唾弃者的吗?显然不可能,即使我一开始就想不用任何插件,一个人也不可能瞬间就具有这些技术能力。这些模块的开发,是我从一个个的服务项目中自己积累出来的,早期,一个项目我可能要用 10 个插件,过了几年,我才能把对插件的依赖减少到只有一两个。

当我已经自己写出过这些模块,并且自信能根据我的客户要求写出任何他们想要的功能模块的时候,我确定我能摆脱对插件的依赖了,于是我才敢自称为一个 WordPress 的开发者,而不只是个使用者。但是,从骨子里,无论是当初的那个使用者,还是现在的这个开发者,我本质上还是一名爱好者,我热爱着 WordPress,以及它带给我的技术成长之路。这条路,并没有让我架空着去学习代码,而是接地气地给我出了一个个问题(客户的真实需求),又体贴的提供了大量的文档和谷歌链接,让我自己找到答案,从而写出了能解决这些难题的代码。

如今,以我的眼光再去看当年自己做过的那些项目,以及现今大部分还是只能靠堆插件给客户建站的建站公司,我的目光变得挑剔起来。我能以不到 10% 的代码去构建一个插件缝合怪网站;我能把这些网站的性能提高一倍以上,无论前端还是后端;我能干干净净地还原任何我能看到的电商类型,而不必担心插件的制肘和第三方的责任。

最重要的是:客户把网站交给我,就是交给我本人,而不是我本人 + 一群不认识的插件作者的组合。

好了,再回头理解本文开头说的 WordPress 的第二个特性 - 扩展性,在我这里是不是就没有了呢?当然不是。只是理解的角度不同而已。正是因为 WordPress 在代码层面优秀的扩展性,能帮我在 WordPress 平台上更快的写出业务需要的代码,完成定制的要求。WordPress 在逻辑层面的扩展性,也不仅仅体现在第三方插件和主题上。它提供的 Rest API 和相关的定制接口,更使它的使用场景不仅局限于做网站,你几乎能用它做后台,完成任何平台的开发需求,所以我基于 WordPress 也做了很多个微信小程序,顺便还看了下百度和支付宝的小程序,目测都不在话下。安卓和 iOS 平台的 APP 也都能基于它开发,只是我自己没有开拓这方面的业务,个人精力有限嘛!

以上观点,仅出于我当前的眼界。对于 WordPress,我既没有写过一款有公共贡献的流行插件,也没有写过一款公开售卖的主题,所以我自认为不是什么高级玩家。直到现在,也不敢惶称自己能完全摆脱 WordPress 的插件生态,更无意贬低对插件的使用。毕竟,WordPress 那可怕的市场份额,几乎都是这些伟大的插件和主题带来的。希望看到 WordPress 继续发展的同时,有越来越多的 WordPress 使用者对信手拈来的插件能有多一点不同角度的看法。你是否可以吸收它们、把它们变成你自己?退一步说,不要轻易迷失在插件的海洋里,毕竟,每个插件的作者,也都是怀揣各自目标的人。

正文完
 0
评论(没有评论)