鉴于人工智能在当今世界如此重要,我们认为探索开发者如何使用这些工具来创建或改进 WordPress 插件将会非常有趣。本文还将逐步指导您使用热门的人工智能编程助手 Cursor 构建 WordPress 插件。
虽然人工智能可以成为可靠的助手,但它并不能完全取代人类的专业知识。熟练的开发者仍然需要审查输出、捕获错误、优化性能,并确保代码的安全性和可扩展性。
话虽如此,我们显然正处于自然语言编程时代。您可能无法仅凭一个命令就能启动整个 CMS,也不要指望获得功能齐全的页面构建器,但人工智能可以帮助加快流程的许多部分。即使是低代码爱好者也可以从中受益,而高级开发者正在寻找更智能、更快捷的构建方法。
AI编程工具概览
无论使用在线还是桌面工具,大多数 AI 代码生成器都具有以下共同点:
- 它们采集了海量数据,并在代码库中接受过训练。
- 它们提供自动补全和智能代码建议,从而节省时间。
- 它们精通多种编程语言。
- 它们具有上下文感知能力,这意味着它们能够理解代码库的结构。
- 它们能够解读自然语言提示,即使是细微的拼写错误也能理解。
- 有些工具支持在不同的大型语言模型 (LLM) 之间切换。
- 大多数工具都支持插件系统或扩展。
- 许多工具都包含调试和重构工具。
那么,当今 AI 编程领域的关键参与者是谁?
- ChatGPT:目前 AI 领域最知名的名字。ChatGPT 无需任何设置,可以生成代码、解释其功能并回答后续问题——所有这些都在一个地方完成。
- GitHub Copilot:由 GitHub 和 OpenAI 共同开发,Copilot 可直接集成到您常用的 IDE 中,并在您输入代码时实时提供代码建议。这就像与 AI 开发者结对编程一样。
- Grok:与 ChatGPT 和 Claude 类似,Grok 是 xAI 为 X 用户提供的工具,以其严谨的态度而闻名。
- Gemini:这是 Google 的全能 AI 工具系列,与 ChatGPT 类似。
- Windsurf:这是一款专注于预测开发者需求的 IDE。
- Cursor:当下非常火热的 AI 编程工具,我们后面会重点介绍这一个。
关于使用 Cursor AI 的几点说明
为了构建我们的插件,我们选择使用 Cursor AI,它越来越受到开发者的青睐。Cursor AI 是 VSCode IDE 的一个分支,因此它的外观和使用体验都很熟悉。Cursor AI 非常灵活,您可以将 VSCode 的设置和偏好设置导入到 Cursor AI。
作为一款功能齐全的开源 IDE,它提供许多扩展程序,并且有多种访问代码文档的方式。
注:免费版本对于轻度开发者足够用。但如果用它来开发项目,根据实际情况,建议升级为付费套餐。
Cursor 的聊天功能有多种模式,每种模式都针对不同类型的任务进行了优化。
Cursor 聊天模式
您可以使用模式选择器 ( Cmd+.
) 或键盘快捷键在它们之间切换:
- 提问模式:最适合快速提问、解释或规划功能。例如,您可以输入“此代码库使用什么编程语言?”,并根据您打开的文件获取上下文答案。使用
Cmd+L
(Mac) 或Ctrl+L
(Windows/Linux) 访问。 - 代理模式:当您希望 Cursor 推理整个代码库并进行更广泛的更改(例如生成文件、实现新功能或重构)时,这是理想之选。您可以输入类似“Create a documentation file based on what’s in
/plugins/contentwriter
”的内容。使用Cmd+I
或Ctrl+I
触发此模式。 - 手动模式:当您想要更多控制并且只需要 AI 在特定文件或代码片段中工作时使用此模式。例如,您可以要求它“Refactor
theme.json
using components found in../docs
.”。当您直接开始编辑或通过命令面板进行编辑时,此模式会自动激活。
插件启动工作流程
如果您只使用 ChatGPT 编写代码,那么您可能错过了 AI 代码助手的强大功能。诚然,通用的 AI 工具可以启动有效的 WordPress 插件,但这肯定不是测试或调试代码的最有效方法。
Cursor AI 等工具正是为此而生——它们将 AI 与功能齐全的 IDE 相结合,引导您完成更结构化、以开发者为中心的工作流程。
开始使用 AI 编码助手的一个好方法是使用您熟悉的内容来提示它们。选择一个规模较小、范围明确的项目。不要立即着手开发复杂的功能或大规模的插件。也绝对不要指望 AI 能根据一个模糊的提示构建出您的整个插件。就像处理任何开发任务一样,首先用通俗易懂的语言写下您的目标。
在本演示中,我们将创建一个名为 Custom Writer 的插件,用于在 WordPress 中注册一个新的用户角色。该角色可以创建和编辑文章,但不能删除任何内容或访问其他文章类型。
步骤 1:打开插件目录
启动 Cursor,然后通过 File > Open Folder 导航到您的 /wp-content/plugins
目录。这将为您的插件构建做好准备。
步骤 2:开始新的聊天会话
按 Cmd + Shift + L
(Windows 系统上按 Ctrl + Shift + L
)开始新的聊天。
按 Cmd + L / Ctrl + L
切换到“提问模式”,这样我们就可以从一个计划提示开始。在此模式下,Cursor 会帮助您推理您的想法,而无需直接跳到代码。
在主提示输入上方,您会看到一个标有“Add Context”的字段。您可以在此处完整描述您的目标。即使您的拼写不完美,也要具体说明——Cursor 不会容忍拼写错误。
我们输入的内容如下:
我正在构建一个 WordPress 插件,用于添加一个名为“Custom Writer”的新用户角色。请仅授予此角色创建新帖子和编辑帖子的权限,但不能删除任何帖子。此用户不具备编辑其他帖子类型的其他权限。
请用 Markdown 编写一套详细的说明,供 AI 代理在构建插件时使用。
请勿包含任何依赖项。将所有代码保存在一个 php 文件中,该文件将位于唯一命名的插件文件夹 /plugins 中。
使用 @WordPress 开发文档来帮助您构建符合 WordPress 标准的插件。
现在无需编写任何代码。只需创建一个包含构建说明的 Markdown 文件即可。
请记下 @WordPress
关键字 – 它会告诉 Cursor 参考 WordPress 官方文档。这是确保您的插件遵循最佳实践的最简单方法之一。
使用 Cursor 提问模式。
步骤 3:查看Markdown说明
按下“Send”后,Cursor 会回复一份详细的 Markdown 文档。文档概述了插件应执行的所有操作——从设置钩子到卸载时的清理。
以下是 Cursor 包含的内容:
- 插件标头详细信息(名称、版本、许可证)
- 代码结构(自定义插件文件夹中的单个
.php
文件) - 使用
add_role()
创建角色 - 特定功能(
edit_posts
、publish_posts
等)
用于激活、停用和卸载的钩子
安全、性能和测试建议
您可以在继续操作之前调整说明,但我们对目前的版本感到满意。
步骤 4:切换到代理模式并构建插件
现在是时候实际生成代码了。
按 Cmd + Shift + I
(或 Ctrl + Shift + I
)切换到代理模式。这将授予 Cursor 权限,使其能够跨代码库工作并执行多步骤任务。
按 Enter 键,您会看到“Run Command”按钮出现。
Cursor 运行命令。
点击“Run Command”,Cursor 就会创建你的插件。你应该会看到一个新文件夹(例如, custom-writer-role
),里面有一个 .php
文件。
Cursor 生成的文件夹和代码文件。
步骤 5:审核并接受文件
打开 Cursor 生成的文件。您可以在此处进行编辑,例如更新插件作者或优化内联注释。
满意后,点击“Accept File”。不用担心,您可以随时进行编辑。这只是确认该文件应该成为您代码库的一部分。
步骤 6:在WordPress中激活插件
前往您的 WordPress 管理后台。在“插件”下,找到您的新插件并激活它。
激活由 Cursor 创建的 WordPress 插件。
如果一切生成正确,您将看到一条成功消息,插件将正式上线。
步骤 7:测试新角色
创建新用户并为其分配“Custom Writer”角色。测试结果应显示:
- 新用户角色已成功创建
- 仅可创建文章。
- 文章可编辑和查看,但不可删除。
步骤 8:发现并修复UI问题
您会注意到,“Quick Edit”链接仍然在文章列表中。虽然它不允许删除,但我们并未要求删除,这可能会让用户感到困惑。
插件调试。
返回 Cursor,并启动新的提示,请求帮助移除“Quick Edit”。
在创建本指南的演示时,我们发出了一系列提示,要求 Cursor 采用不同的方法来移除“Quick Edit”。有一次,我们看到了对“user_switch”的引用,这让我们怀疑它是否与“Switch User Role”插件存在冲突。(除了我们的插件之外,这是我们唯一运行的插件。)
在我们提醒 Cursor 这个潜在问题后,它提示会发生冲突。随后又发出了一轮提示。在此期间,我们发现新用户无法登录,因为需要更高的权限级别。
又一轮提示开始,但没有任何效果。每隔一段时间,Cursor 就会移除“Quick Edit”,但编辑功能也会被移除。我们感到很困惑,于是要求 Cursor 总结一下我们目前的情况,以确保我们理解它所理解的内容。有一次,我们不禁自问:“您到底在想什么?”
最终,Cursor 找到了解决所有问题的方法,并向我们提供了所做更改的摘要。
我已将方法更改为:
- 移除基于功能的方法,改用 WordPress 的
post_row_actions
和page_row_actions
过滤器。 - 添加一个新方法
remove_quick_edit_link
,通过取消设置内联hide-if-no-js
操作来专门移除“快速编辑”链接。 - 保留编辑文章所需的所有功能。
此方法应:
- – 保持“编辑”链接可见
- – 仅移除“快速编辑”链接
- – 适用于文章和页面 – 不影响任何其他功能。
您需要:
- – 停用插件
- – 重新激活插件以应用这些更改。
如果此方法成功移除“快速编辑”链接,同时保持“编辑”链接可见,请告知我。
步骤 9:观察其他行为
测试过程中,我们还注意到:
- 媒体库无法访问,尽管我们并未提及。提醒一下:如果您没有明确请求某项功能,AI 可能不会启用。
- Cursor 的摘要中提到该功能“适用于文章和页面”,但该插件正确地阻止了对页面的访问。因此,AI 的解释略显过度,但行为是正确的。
步骤 10:持续测试和迭代
从这里开始,您可以安装其他插件,测试兼容性,并根据需要优化您的角色。当出现问题或行为不符合预期时,请返回 Cursor 并进行后续提示。
您会发现自己经常这样做——提出后续问题、重新表述说明,甚至只是问“您觉得怎么样?”来了解 Cursor 的观点。
这就是 Cursor 真正出彩的地方:循环反馈快速,并且助手在每次迭代中都在不断改进。
不要像盲头乌蝇
你可以让人工智能生成插件,但这并不意味着你应该这么做——至少,在没有仔细考虑的情况下不应该这么做。
在提出建议之前,请花点时间定义你的插件应该做什么。考虑它的用途、所需的功能以及任何潜在的依赖关系。问问自己:这个插件会与 WooCommerce 等主流扩展程序冲突吗?如果答案是“可能”,请在你的建议中包含这一点。
你给人工智能提供的背景信息越多,你的结果就越好。要具体。清晰地描述你的目标。不要犹豫。
人工智能可能感觉很神奇,但负责任地构建仍然很重要。请记住手工编码时需要考虑的相同要点:
- 安全性—— 净化输入、检查功能、遵循最佳实践
- 性能—— 避免冗余查询、保持逻辑严密
- 可访问性—— 考虑用户角色、UI 元素和包容性交互
- 测试—— 尝试极端情况、混合使用插件并验证功能
- 部署—— 为版本控制、回滚和可扩展性做好准备
- 重构—— 定期重新审视您的代码,不仅要一次,还要定期
小结
辅助生成代码的格局每分钟都在变化。这让人想起搜索的早期,当时有大量的条目。最终,只有少数条目幸存下来。这最终也可能会发生,尽管开源可能会将我们引向不同的方向。
我们建议您使用相同的初始提示探索多种 AI 工具,然后比较编码过程和结果。随着格局的不断发展,您可能需要更改首选应用程序,对此持开放态度。
随着人工智能工具的发展,您的工作流程也应该随之发展——而这始于正确的环境。
评论留言