WordPress 插件最常见的 10 个错误
已发表: 2019-08-27WordPress 最成功的功能之一是它能够鼓励开发人员社区通过创建插件来扩展此内容管理系统的基本功能。 这一点以及 WordPress 市场份额近年来没有停止增长的事实是吸引人才的关键。
WordPress插件是最好的。 知道如果您需要自定义您的网站,您只需寻找一个可以满足您需要的插件就可以做到这一点,让您高枕无忧。 而且还大大降低了成本。
不必(在大多数情况下)开发定制解决方案是一种解脱。 它以几年前的一小部分价格实现了对复杂网站的访问民主化。

但并非一切都是玫瑰花坛。 选择 WordPress 插件时,我们必须非常小心。 WordPress 的流行吸引了人才。 但它也吸引了经验不足的开发人员,他们有时会创建不具备所需质量水平的插件。 检测它们并不像计算它们拥有的正面评级的数量或它们安装在多少个站点上那么容易。 它要复杂得多。
自从我们开始分析客户的 WordPress 安装以来,我们在 Nelio 遇到的问题是我们可以找到安装在那里的垃圾数量。 我们已经看到了你不会相信的事情……
这就是为什么今天我将解释这些年来我们在使用 WordPress 插件时遇到的一些最常见和最奇怪的问题。
WordPress 插件问题列表
在这里,我给您列出了您可以使用 WordPress 插件找到的问题列表。 它们是一般性问题,我们不会给出遭受它们影响的插件的具体名称,但它们确实存在,您必须小心避免它们。
在数据库中创建附加表
WordPress 数据库是一个战区。 许多插件对其进行了扩展以添加自己的表。 这不一定是错的,但大多数时候没有必要。

WordPress 数据库足够通用,无需添加新表供您的插件使用。 那么为什么开发人员会看到需要向 WordPress 添加更多表格呢? 答案很简单:舒适和无知。
很多时候,对于没有 WordPress 经验的人来说,直接在 SQL 中放置额外的表并进行查询以读取和修改数据会更容易。 如果做得不好,除了会成为安全漏洞之外,您还可以避免使用元表。
如果你想扩展用户信息,你有wp_usermeta表。 内容( wp_postmeta )、评论( wp_commentmeta )甚至分类术语(标签和类别,带有wp_termmeta表)也是如此。
WordPress 提供了以标准和安全的方式读取和修改此元信息的方法。 亲爱的 WordPress 开发人员,除非您有性能证明,否则不要在插件中使用额外的表。
加载错误的脚本和样式
大多数 WordPress 插件迟早需要加载自己的 JavaScript 和 CSS 文件,有时在 WordPress 管理面板中,有时在网络前端。 可悲的是,这是经常做错的事情。

要在 WordPress 中添加 CSS 样式或 JavaScript 文件,您必须将其排入标准 WordPress 队列。 为此,首先使用函数wp_register_style和wp_register_script注册它,然后分别使用wp_enqueue_style和wp_enqueue_script将其加入队列。
请注意,这些函数允许您定义样式和脚本所具有的依赖项,因此 WordPress 可以正确管理依赖项并仅将您需要的内容加入队列。
其他任何事情都是错误的。 在这里,即使是开发人员文档也是罪魁祸首。 查看 WordPress Codex 中wp_head挂钩中的示例。 开发者会以此作为参考,然后会发生什么是他们破坏了东西?
甚至不要考虑使用wp_dequeue_script或wp_dequeue_style从 WordPress 中取出脚本或样式。 很多时候,我们已经看到插件如何将 WordPress 附带的 jQuery 版本出列以添加自己的(通常已过时),然后一切都停止工作......
如果您检测到一个插件没有按照 WordPress 指南正确加载脚本和样式,这足以立即从您的安装中禁用它。
停用插件时不清理数据库
这是 WordPress 插件的另一个经典方面,也许是您会发现的最常见的方面。 为了工作,WordPress 插件需要在您的数据库中添加记录。 这里的问题是,当您停用插件时,这些记录通常会永远保留在您的数据库表中。
当您停用它们时,WordPress 插件通常不会删除它们在您的数据库中创建的数据。 不,没有垃圾车会时不时路过,带走这些无用的数据。
WordPress 插件应该在用户停用它时删除它创建的附加表以及它添加到标准表中的数据。 但它很少发生。 我鼓励您访问您的数据库并密切关注它。 你肯定会在那里找到无用的垃圾。

如果开发人员很小心,停用 WordPress 中的插件会询问您是要暂时还是永久停用它。 后一个选项将擦除它在操作期间添加的所有数据,从而取出垃圾以保持一切清洁。
不提供用户指导
当您安装 WordPress 插件并激活它时,您通常希望 WordPress Dashboard 上出现一个新菜单,您可以在其中找到插件的功能。 但情况并非总是如此。

有时新插件会在现有菜单中添加一个菜单,通常是“工具”菜单或“设置”菜单。 因此,用户必须调查以查看包含刚刚安装和激活的新插件的菜单在哪里。
在插件的README.txt文件中描述在 WordPress 中激活插件后会发生什么通常是一个好习惯。 这样可以减少用户的焦虑,让生活更轻松。 否则,如果用户找不到插件添加的功能在哪里,他们最终会停用它,作为开发人员,这是你最不想发生的事情。
您可能认为这只是新手才会发生的事情。 但事实并非如此。 最近,我安装了某个插件来做某些事情(我提醒你我要避免命名?),我发现自己也遇到了同样的情况。 我找不到插件设置在哪里。 如果它发生在我应该已经使用 WordPress 很长时间的人身上,同样的情况对于经验较少的人来说是可怕的。

更改 WordPress 用户界面
WordPress 易于使用,至少他们是这么说的。 这要归功于 WordPress 默认包含的用户界面。 这个界面在新的 WordPress 安装中很简单,但随着我们添加越来越多的插件,它变得更加复杂。
此外,WordPress 插件的一个常见问题是它们有时使用与用户期望在 WordPress 仪表板上找到的完全不同的用户界面。

我知道,从设计师的角度来看,WordPress 用户界面有点无聊,但有时遵循用户习惯的相同样式和相同的用户体验比选择完全不同的解决方案要聪明得多。
在我们的插件中,我们尝试保持相同的 WordPress 样式,并将用户界面的每个元素放在我们认为用户期望它出现的位置。 但是我们已经看到许多插件界面看起来很少或根本不像 WordPress,让用户感到困惑。
建议是,如果您是 WordPress 插件的设计者,请遵循 WordPress 样式指南,甚至可以重用它现在提供的组件来在 React 中创建接口,直接从 Gutenberg 块编辑器导出。 我们在 Nelio A/B 测试的改造中使用它们,它们很棒。
侵犯您财产的界限
从开发人员的角度来看,WordPress 仪表板有两种不同类型的区域。 一方面,我们有私人区域,即特定插件添加的那些页面。 在这些区域内,只有那些页面所属的插件包含的 CSS 样式和脚本才应该被排入队列。
另一方面,我们有公共区域,这是 WordPress 中默认提供的所有区域。 公共区域的示例是内容编辑器、菜单或小部件编辑器、设置等。

遵循 WordPress 指南的编程良好的插件会将仅影响其私有区域的脚本和样式排入队列。 这意味着当他们将这些资源排入队列时,他们在代码中有一个条件来检查他们是否尝试在自己财产的私有页面上执行此操作。 否则,他们不会将超出该范围的任何内容加入队列。
不幸的是,有很多插件“忘记”在他们的代码中包含这个条件。 这会导致他们的 JavaScript 代码和样式始终加载到所有页面上,这可能会破坏其他常见页面甚至其他插件的私有页面。
检测它比看起来更容易。 如果您正在使用一个插件并且它的用户界面看起来很糟糕,那么很可能另一个插件将 JavaScript 或 CSS 放在了不应该放置的地方,并且破坏了第一个插件的样式和行为。 我们已经看到了。 它发生在我们身上(他们破坏了我们的界面),不幸的是,它会继续发生。
不遵循良好的编程习惯
您不必是世界上最好的黑客就可以在 WordPress 中编程,但在编程方面需要最低质量。
WordPress 的好处之一(如果不是最大的话)是它的开源理念。 探索插件的源代码是你总能做的事情(至少官方存储库中的那些插件)。

你可能会找到一切:好看的代码和会让你哭的代码。 从性能的角度来看,这并不意味着一个比另一个差。 但是,如果您看到记录良好、缩进良好的代码,并且按照文件和文件夹的逻辑分布进行结构化,那么您已经找到了圣杯。
如果一个 WordPress 插件的代码很好看,那可能是因为程序员的细心和打磨。 这是质量的明显标志。
打开安全漏洞
WordPress 插件只不过是一组代码指令。 通常是 PHP 和 JavaScript,它们扩展了 WordPress 的功能。 这段代码将非常安全地从用户那里获取数据并最终在屏幕上呈现信息。

如果您未正确处理该数据,则在获取数据并将其打印在屏幕上时,您可能会添加安全漏洞。 WordPress 非常重视验证和清理输入数据以及转义输出数据。
有很多函数可以验证数据并确保用户输入插件的内容确实是我们想要的,从而避免代码注入。 如果插件开发者不使用它们,那是由于懒惰或无知。 小心你最终在 WordPress 中安装的内容,否则你最终会后悔的。
进行不合适的活动
继续上一节,那里有来自可疑来源的插件。 有时,为了节省一些钱,您会在 Internet 上的阴暗处寻找包含您想要但不想付费的插件的.zip文件。

当您找到它时,一切都是幸福的,直到您意识到该插件带有礼物。 从爬虫、加密货币矿工、垃圾邮件,甚至可以控制您的网站的恶意代码。 你可以找到一切。
请注意您在那里找到的插件的来源。 官方 WordPress 存储库和最知名的市场是 WordPress 插件的唯一可靠来源。 要进入这些存储库,插件开发人员需要通过一些质量测试。 只信任已知的地方,避免从不可靠的来源获得插件。
不增加价值
WordPress 插件可能犯的最严重错误是没有为用户增加价值。 作为开发人员,有时您会产生一些您认为对其他人非常有用的疯狂想法。 事实是,如果您的插件带来的用户数量非常少,那么它最终将获得的用户数量将是相似的。
官方 WordPress 存储库中有许多价值较低的插件。 但这是在任何市场或应用程序存储库中都会发生的事情。
如果作为开发人员您想在竞争中脱颖而出,请专注于为您的潜在用户提供价值。 这样,您的插件最终获得了在 WordPress 中取得成功所必需的受欢迎程度。
选择 WordPress 插件很复杂
并非一切都基于用户评论的数量和星数。 选择一个好的 WordPress 插件很复杂。 有许多隐藏的惊喜只有通过分析插件本身的源代码才能发现。 如果您没有了解它的知识,请小心。
查看您会在存储库内的插件支持论坛中找到的评论,以了解人们对它有什么问题。 在受控环境中试用该插件,如果您发现异常情况,请联系开发人员寻求帮助。
如果在此之后您对所看到的内容不满意,请寻找替代方案。 有成千上万的插件等着你。 或者在下面给我们留言。 我们一直在寻找新的有趣插件的想法来添加到我们的收藏中。
Goh Rhy Yan在Unsplash上的特色图片。
