WordPress 开发者如何让用户满意
作为插件开发者,无论是应对指南变更还是代码库更新,都有很多事情需要处理。但有一点是永恒不变的:需要让用户满意。
在本文中,我将列举一些我们作为插件开发者应确保做到的事情。我曾在社交媒体、Slack(包括核心支持和插件审核团队)甚至线下(感谢 WordCamp Europe 2023 的各位)与人们交流过。
避免激进的推广
虽然有些插件的编写和支持纯粹是出于热爱,但很多插件的存在是为了向上销售——温和地引导用户购买插件的专业版或完全不同的产品。但为了实现这一目标而添加到插件中的内容可能会产生巨大的影响。事实上,根据收到的反馈,在这方面处理不当是导致用户最大烦恼的单一原因。
而客户不满的主要原因是出现在 WP 管理后台、使用 Admin Notice 功能的横幅广告。它们通常在激活插件后立即出现,给用户仪表盘增添了直接的“请购买”信息。
应避免在 WordPress 仪表盘内投放广告,因为这通常是无效的。
如果你打算这样做,我建议遵循几个基本原则:
- 使其可关闭。完全可关闭。不是 12 个月或任何其他期限。
- 布局要标准——使其成为信息通知,全宽显示,并使用“x”按钮来关闭它。
- 确保你为横幅使用 Admin Notice 方法。我曾见过一个插件使用自己的 JavaScript 横幅,它不仅侵占了区块编辑器,还在其他使用 JavaScript 的屏幕上产生严重冲突。
有时它们甚至不是在推广付费产品。一位开发者在其插件中添加了一个横幅,用来推广他们的其他免费插件。这个横幅很高,因为广告涵盖了许多不同的插件,而且,如果你安装了同一作者的多个插件,每个插件都会显示相同的横幅。因此,始终要考虑用户可能安装了多个插件,以及你正在使用的屏幕空间。
事实上,许多在安装时出现的横幅甚至根本不是广告,而通常是为了引导你完成需要设置的配置。即使是这些也并非总是合理的,而且其数量之多,加上我上面提到的那些,可能会引起用户的反感。
同样,你需要考虑将它们放在哪个屏幕上。大多数会放在仪表盘上,但有些插件会将其添加到它们的设置屏幕。再次,我要引用插件指南…
用户通常只在尝试解决问题时才会访问设置页面。让插件更难使用通常不会鼓励好评,我们建议限制其中放置的任何广告。
我完全理解推广的必要性——毕竟你有产品需要宣传。但是,一旦你深入探究用户的烦恼,问题很少在于你在做这件事,而在于它是如何实现的。因此,深思熟虑和体贴周到非常重要。
保持菜单一致性
这里的“一致性”指的是与 WordPress 本身保持一致。
诱惑在于使用管理菜单让你的插件脱颖而出,但更多时候这会让它更难找到,最糟糕的是,破坏了可访问性。例如,你应该为菜单使用默认的 CSS 颜色和 SVG 图标——如果你覆盖了这些,那么当用户更改 WP 管理后台配色方案时(可能是出于可访问性目的),你的插件很可能无法相应调整。我见过很多由于这个原因导致文本和图标无法阅读的例子。
如果你创建了一个主菜单项,请重新评估它是否真的需要。帮助信息应放在各个屏幕内(充分利用 WordPress 的帮助标签),设置和工具应放在适当的现有菜单下。大多数插件只需要一个屏幕,那就是用于设置(当然,如果可能,尽量将它们放到现有的设置屏幕中)。不要为了证明顶级菜单的合理性而发明更多需求。它们会给管理后台带来混乱,并且当东西不在用户期望的位置时会造成困惑。
同样,定位也很重要。如果你确实创建了一个主菜单选项,它放在哪里最合理?如果它与媒体相关,那么也许放在现有的“媒体”菜单下面。
尽量保持用户界面一致性
每当我创建一个插件,特别是当它有任何屏幕时,我都会努力确保它们与核心 WordPress 体验的外观和感觉相匹配。我的目标始终是让用户感觉这就像是核心自带的东西。
许多插件会带来截然不同的东西,从按钮到整个屏幕的外观。有些甚至完全脱离了 WP 管理后台,在没有管理栏和侧边栏的情况下呈现它们的屏幕。与上一点类似,这通常是为了让插件脱颖而出而做的事情,但现实是,为插件创建自己的用户界面会让你的用户更难理解。你在 WordPress 中使用的大多数屏幕都会利用标准用户界面,所以突然进入一个不使用标准界面的屏幕,会破坏易于使用的体验。而且,与菜单一样,也可能破坏可访问性。
越来越多的用户因为管理体验而对 WordPress 望而却步,这直接是一些插件对其造成的结果。尽可能利用 大量可用的 API——它们使屏幕的实现变得容易得多,并为你所做的工作提供一致的外观和感觉。
不要在用户面前设置障碍
在今年 WCEU 演讲之前,我询问了用户关于插件最让他们沮丧的是什么。是的,横幅广告是首要原因。但令我惊讶的是,停用调查也很“受欢迎”(或者说,不受欢迎,如果你明白我的意思)。如果你没见过这些,它们是在你停用(不是卸载!)插件时出现的弹窗,询问你为什么这样做——可以将其视为插件版的退订邮件列表。这不是内置功能,但越来越多的开发者似乎正在将其添加到他们的插件中。我理解需要知道“为什么”,但当你只是想停用一个插件(可能只是为了调试网站问题而这样做)时,遇到这种阻碍会让人非常沮丧。
事实上,在下图所示的停用调查弹窗截图中,临时停用以尝试解决问题,是你可以选择的停用原因选项之一,所以开发者承认这种情况会发生…
功能提示指针被引入 WordPress,旨在为插件提供一种在激活时突出显示选项的简单方法。但我见过一些插件以完全接管管理屏幕直到用户操作为止的方式使用它们——当插件安装后必须执行某个操作(例如设置 API 密钥)时,通常会出现这种情况,因此开发者觉得有必要确保在此之前尽可能少地执行其他操作。同样,我见过一些插件,一旦激活,就会直接将你带到它们的设置屏幕。
你的插件不应该接管或强迫用户做你想让他们做的事,而应该提供指导和帮助,如果他们愿意,可以自由忽略。
将“膨胀”控制在最低限度
无论是添加与插件目的无关的功能,还是在不需要时加载脚本,你都需要注意“膨胀”——为插件提供比实际需要更多的功能。即使是相关的功能,如果只是为了“我们需要为插件添加更多内容以显示我们在做事”而添加,也可能会引起用户反感。用户喜欢一个流畅、精简的插件,它能完成所需的任务,仅此而已。
如果你加载脚本,无论是前端还是后端,请确保只在真正需要时才这样做。例如,如果前端脚本仅在文章使用某个特定功能时才需要,那么仅在该功能被使用时加载它(我知道这似乎是一个非常基本的概念,但你会惊讶于有多少插件未能做到这一点——在每次页面加载时都加载要容易得多)。同样,不要在后端加载仅前端需要的脚本。
此外,确保压缩图片和脚本——通常认为这会在客户端完成,但最好在源头上就做好。脚本——包括 CSS 和 JS——可以被压缩,任何图片资源都应该被压缩。经常被遗忘的是你的插件资源,比如 wordpress.org 目录列表中包含的内容——插件图标、背景和截图都可以提前快速压缩一下。
做好自我清理
插件通常会在选项数据库中保存设置,它们可能使用瞬态来缓存数据,甚至可能创建自己的数据库表。因此,当用户卸载插件时,清除所有这些内容非常重要。
有两种方法可以做到:
- 使用 register_uninstall_hook 在插件卸载时运行一个清理函数。
- 在插件的根文件夹中,创建一个名为 uninstall.php 的文件,并将清理函数放在其中。
在这两种情况下,这些操作都将在插件被卸载时执行,而不仅仅是在停用时。
关注“基础”事项
有几件事我真的不需要深入细节来解释——它们是每个开发者都应该做但遗憾的是经常忘记的“基础”事项。这些包括:
- 可访问性标准
- 只管去做! 可访问性应该是基础,但却经常被遗忘。这也是我肯定需要更多关注的事情。
- 翻译
- 确保你的插件适合翻译,使用内置的国际化函数。
- 数据验证
- 正如 WordPress 插件审核团队的 Mika Epstein 所说:“尽早清理,稍后转义。哦,还要使用 nonce!”。如果你的插件被报告存在本可以轻易避免的漏洞,用户不会高兴。在理解并正确使用 WordPress nonces中了解更多关于 WordPress nonces 的信息。
检查代码质量
有许多工具可用于检查代码质量,如果你没有使用这些工具,那你就错过了。不这样做怎么会让用户望而却步?很简单,因为不这样做很可能导致我们已经讨论过的许多问题——用户可能非常善于发现你可能遗漏的东西。
我特别推荐使用 PHPCS 来扫描你的 PHP 代码。有专门针对 WordPress 的规则集,也有一些用于 PHP 兼容性(你的插件能在最新、最闪亮的 PHP 版本上运行,这可能会让你的用户高兴!)。你甚至可以将其集成到最流行的 IDE 中——它会在你编写代码时进行扫描和报告!
你还应该考虑使用各种在线验证器检查任何 HTML 输出,例如 W3C 提供的验证器。