WordPress 插件越多速度越慢?很多站长都有这种认识,因为网上很多的教程都是这么说的。事实真相是这样吗?本文将以插件及 WordPress 运行机制深入分析一下,望能给出一个中肯的参考意见。
WordPress 插件运行原理
简单理解,就是除了WordPress核心程序之外,额外添加的任何程序代码都可以被理解为插件。甚至包括向 functions.php 中添加的代码,也可以视作为插件的另外一种形式。
插件本身就是向 WordPress 添加额外程序代码,这些代码会随着 WordPress 一起运行。
例如以下代码:
function my_wp_head() {
echo "<!-- 注释:网页由站长帮开发 -->";
}
add_action('wp_head', 'my_wp_head');
将代码添加到 functions.php 中或者做成一个插件形式,都是在所有页面的 head 部分添加一段HTML注释代码。
不论是哪种方式添加,对性能和实现的目的都没什么区别。WordPress 每次执行程序的时候都会将这段代码添加并运行。
所以这里可以得出一个结论,只要是需要额外添加程序代码,不论是直接写入 functions.php 函数文件中还是使用插件,对 WordPress 运行的效率影响是一样的。
WordPress 插件数量会决定网站速度吗?
在上面的章节中,我们已经提到,插件中的代码(已启用状态)会随着 WordPress 一起执行,那么代码越多,执行速度就越慢,这个是肯定的。
但不能以插件数量来衡量,因为有些插件代码很少(也叫很轻量),有些插件代码非常臃肿。所以应该视需要执行的代码数量而定。
代码质量才是关键因素
影响 WordPress 网站速度的一个非常重要的指标,就是代码质量。
我们都知道 WordPress 核心程序提供了很多的内置函数和钩子,它们本身就是 WordPress 的一部分,对于插件开发者而言,要尽量使用这些内置函数与钩子来进行开发,即可节省代码编写时间又能提高程序执行效率和安全性。
如果插件完全符合 WordPress 官方插件手册中的编码要求,那么执行效率是不俗的。
另外程序功能如果相对简单的话,采用面向过程编程的插件执行效率较高。功能较复杂的插件,一般采用面向对象编程,虽然便于维护和扩展,但执行效率较低一些。
并不是所有的情况都会影响网站前端速度
WordPress 插件中的程序代码可以分为3种:
- 仅在前端执行的程序代码
- 仅在后台执行的程序代码
- 所有地方执行的程序代码
WordPress 会根据插件中所设定的条件加载代码执行,真正影响网站前端速度的只有1和3两种,大部分的功能型插件虽然代码看似很多,但在前端加载的代码其实不多,那样的话对网站速度影响不大。
如果网站使用了W3 Total Cache、WP Rocket、WP Fastest Cache 等静态缓存插件的话,那么插件的程序代码仅影响生成页面缓存的速度,对访客浏览网页的速度无影响。除非插件在前端网页中额外加载了JS或CSS资源。
如果插件在前端需要加载JS或CSS,可以使用 Perfmatter 插件的脚本管理器功能。在不需要这些静态资源的网页中禁止加载。
例如 Gravity Forms 表单插件会在前端加载CSS样式和JS,但没有使用表单的页面是不需要这些样式和JS脚本的,将它们禁掉仅在有表单的页面中加载,会提速不少。
什么样的插件是优秀的且对网站速度影响较小
如果以上内容都认真阅读了,相信你已经有了一定的了解。下面我们来总结一下,如何选择优秀的插件。
- 代码轻量化的插件。
- 前端输出的CSS或JS经过优化,且有仅在需要的地方加载的判断规则或功能选项。
- 插件的功能有清单且有控制开关选项,未开启的功能代码不会被执行。
- 符合 WordPress 编码规范。
- PHP 编码质量较高。(这个需要一定的能力鉴别,不过在 WordPress 插件库中人气较高的一般都比较优秀。)
- 及时升级插件版本。
总结
只要额外安装了插件,理论上都会增加PHP执行的时间。假如我们需要额外的功能,又不得不安装插件或添加代码,所以没必要太纠结,为了必须的功能尽量选择优质的插件。
WordPress 插件越多速度越慢的谬论可以结束了,应该换成另外一种说法:
“劣质插件越多,才会速度越慢。”