ChatGPT 可以构建一个有用的 WordPress 插件吗?

已发表: 2023-05-22

AI 可以将非编码人员变成专业的 WordPress 插件开发人员吗? 为了找出答案,我们要求 ChatGPT 从头开始​​构建一个自定义 WordPress 插件,然后让我们精干的开发人员团队检查代码……

AI 是目前世界上最流行的两个字母的单词。 最近所有关于人工智能是否会抢走我们工作的新闻头条,我们想知道……ChatGPT 是否真的可以开发一个功能强大且有用的 WordPress 插件,而无需从头开始编写代码? 该插件是否符合最佳编码实践?

幸运的是,WPMU DEV 构建了一些世界上最强大的 WordPress 插件,因此我们有大量专业的 WordPress 插件开发人员可以对 ChatGPT 进行测试。

事实上,如果您在我们公司的虚拟走廊中漫步,您会情不自禁地碰到 WordPress 编码人员和开发人员。 似乎这里的每个人都可以查看 WordPress 插件并查看 PHP,就像 Neo 查看 Matrix 的数字雨代码一样。

矩阵码
对于经验丰富的 WordPress 插件开发人员来说,PHP 代码是什么样的。 资料来源:Giphy.com

各位,那就是……除了我!

我只是一个没有编码技能的博客作者,并且强烈希望在我的简历中添加“快速工程师”。

因此,在本文中,我们将探讨如何利用 ChatGPT 的强大功能快速安全地构建简单的自定义 WordPress 插件,即使您缺乏广泛的编码技能。

我们将通过以下方式做到这一点:

1) 要求 ChatGPT 为我们可以测试的有用插件生成代码,以及

2) 运行 ChatGPT 生成的代码,让我们的专业插件开发人员团队通过,以便他们审查代码并提供诚实的反馈。

我们将介绍以下内容:

  • 第 1 步 – 定义插件的功能
  • 第 2 步 – 使用 ChatGPT 生成代码片段
  • 第 3 步 – 测试自定义插件
  • 来自我们的专家插件开发人员的反馈
  • ChatGPT 能把你变成 WordPress 插件开发者吗?

第 1 步 – 定义插件的功能

在使用 ChatGPT 生成代码之前,我们需要清楚地了解我们希望我们的插件提供的功能。

首先概述我们希望通过插件实现的特定功能、操作或修改。 这将帮助我们为 ChatGPT 生成准确的提示,并确保我们的 AI 生成的代码与我们期望的结果一致。

第 2 步 – 使用 ChatGPT 生成代码片段

为了使用 ChatGPT 生成我们的代码片段,我们将保持简单(和免费)并使用 OpenAI 提供的免费接口。

拿#1…

注意:我第一次尝试使用 ChatGPT 从头开始​​创建 WordPress 插件的尝试过于雄心勃勃。 我要求 ChatGPT 为我构建一个简单的 WordPress 时间旅行虚拟文本生成插件,使用下面的提示...

ChatGPT - WordPress 插件创建提示。
这个提示肯定会踢 ChatGPT 的 WordPress 插件开发轮胎。

作为一个花费大量时间编写 WordPress 教程的人,我经常需要虚拟内容来测试插件、创建屏幕截图等。

因此,我认为在我经常使用的名为 FakerPress 的插件上为我的 AI 生成的虚拟内容插件建模会很棒。

ChatGPT 拒绝了我的请求,并让我知道创建一个功能齐全的 WordPress 插件并具有我请求的所有功能超出了单一响应的范围。

然而,它确实为我提供了一个基本模板,指导我如何实现我提到的一些功能,甚至还指导我如何创建插件目录和文件……

ChatGPT 响应 WordPress 插件开发提示。
嗯……也许我第一次尝试创建一个 WordPress 插件太雄心勃勃了!

起初,ChatGPT 输出的代码看起来相当令人印象深刻……

聊天GPT代码
对于了解“zip”编码的人来说,上面的代码片段看起来确实令人印象深刻!

ChatGPT 还会输出完成后续步骤所需的所有附加代码。

ChatGPT - WordPress 插件开发提示。
由于缺乏编码技能,我依靠 ChatGPT 来指导我完成插件开发过程的每一步。

插件代码输出后,下一步是将插件上传到我的测试站点并对其进行测试以确保其正常工作。

第 3 步 – 测试自定义插件

将包含插件代码的文件夹上传到我的测试站点的wp-content > plugins目录并在插件屏幕中激活它之后……

插件屏幕 - 虚拟内容生成器激活菜单链接。
现在我们都在等待[鼓声]……
我遇到了一个致命错误!

插件屏幕 - 致命错误消息。
多么虎头蛇尾……我的 WordPress 插件开发生涯的最低点!

假设我没有正确添加 ChatGPT 提供的额外片段,我返回并要求将所有代码作为单个文件提供,我可以简单地复制和粘贴以覆盖和更新上传的插件文件......

ChatGPT 提示和响应的屏幕截图。
为什么它不能第一次就给我完整的复制和粘贴代码?

有很多代码要输出,所以每当进程停止时,我指示 ChatGPT 继续……

ChatGPT 提示和响应的屏幕截图。
ChatGPT 有时只需要一点温和的鼓励就可以继续前进。

重复这个过程几次后,ChatGPT 输出了整个代码,甚至提供了一些有用的信息。

ChatGPT 响应的屏幕截图。
等了整整2分钟……ChatGPT终于输出了所有的插件代码!

我将带有新代码的插件文件上传到我的测试站点,然后跳转到该站点的管理区域并激活该插件。

有效! 或者,看起来是这样。

ChatGPT 为插件提供了自己的菜单项……

虚拟内容生成器 WordPress 插件 - 由 ChatGPT 创建
ChatGPT 造就了这一切!

还有一个带有许多精美框和字段的设置屏幕……

虚拟内容生成器 WordPress 插件设置屏幕。
看起来令人印象深刻……但它会起作用吗?

但是我看不到指定要创建多少帖子或页面的字段,所以我只是勾选了一些框,输入了一些值,然后单击“保存更改”按钮以查看会发生什么。

虚拟内容生成器 WordPress 插件 - 由 ChatGPT 创建
现在,关键时刻……

而且……什么都没发生!

显示单个“Hello world”帖子的 WordPress 帖子表。
我的 WordPress 插件开发生涯的最新最低点......一个什么都不做的插件!

我的花哨插件全都是虚构的,就像那些儿童游乐场的宇宙飞船中的一个,里面装满了你可以转动的无用旋钮和你可以按下的按钮,同时假装在外太空飞行。

因此,我通过 Slack 联系了我们的一位开发人员,请他们查看插件文件。

返回的一些评论包括以下内容:

  • “该插件会尝试在每次加载管理页面时生成随机内容”
  • “它调用了一个函数dummy_content_generator_generate_content_paragraphs ,该函数反过来会尝试为它尝试生成的每个段落调用dummy_content_generator_get_random_paragraph 。 问题是没有dummy_content_generator_get_random_paragraph函数。
  • “页面加载到一个点,然后因为缺少更多内容而出错”
  • “除了所有提到的问题之外,没有任何验证,也没有转义输出,这太糟糕了”
  • “就以某物为起点而言,这是一个非常非常糟糕的起点。 就拥有一个有效的插件而言,这还差得远”

几经讨论,觉得这个插件问题比较多,修复起来费工夫,建议我放弃这个项目。

然而,在这一点上,我太投入于我的使命,以至于不能简单地放弃一切并放弃。 回顾温斯顿·丘吉尔爵士的名言( “再给我拿一杯白兰地” “永不屈服,永不屈服,永不,永不,永不……”),我决定是时候……

采取#2 ...

好的,所以我第一次尝试让 ChatGPT 从头开始​​构建 WordPress 插件是一个惨痛的失败。 这本身就为 ChatGPT 执行复杂编码任务的能力提供了一些有价值的见解(或者,正如团队中的某人所说,“如果没有广泛的编码知识,就无法使用 ChatGPT 进行编码。”)

因此,对于“Take #2”,我决定再次尝试使用更简单的插件请求。

回到绘图板,一个天才的灯泡时刻在我脑海中闪过……为什么不请 ChatGPT 为简单的 WordPress 插件提出想法,然后它可以为其生成代码?

所以,这就是我所做的。 这是我及时设计的提示......

ChatGPT 提示生成 WordPress 插件创意。
我的天才提示。

这是 ChatGPT 回复的建议插件列表……

ChatGPT - WordPress 插件创意列表。
我的 WordPress 插件帝国的蓝图。

我喜欢最后一个建议,所以我要求 ChatGPT 为功能性内容复制器插件生成代码,它立即开始工作。

ChatGPT 提示为复制内容的 WordPress 插件生成代码。
这就是印钞许可证的样子!

ChatGPT 眨眼间为插件生成了以下代码:

<?php
/*
Plugin Name: Content Duplicator
Description: Allows users to duplicate posts, pages, or custom post types with one click.
Version: 1.0.0
Author: Your Name
Author URI: https://yourwebsite.com
*/

// Add duplicate action links to post row actions
function content_duplicator_add_duplicate_link( $actions, $post ) {
    if ( current_user_can( 'edit_posts' ) ) {
        $actions['duplicate'] = '<a href="' . wp_nonce_url( admin_url( 'admin-post.php?action=content_duplicator_duplicate_post&post_id=' . $post->ID ), 'content_duplicator_duplicate_post' ) . '" title="Duplicate this item" rel="permalink">Duplicate</a>';
    }
    return $actions;
}
add_filter( 'post_row_actions', 'content_duplicator_add_duplicate_link', 10, 2 );

// Duplicate the post
function content_duplicator_duplicate_post() {
    if ( isset( $_GET['post_id'] ) ) {
        $post_id = absint( $_GET['post_id'] );

        if ( current_user_can( 'edit_posts' ) && wp_verify_nonce( $_GET['_wpnonce'], 'content_duplicator_duplicate_post' ) ) {
            $post = get_post( $post_id );

            $args = array(
                'post_title' => $post->post_title . ' (Duplicate)',
                'post_content' => $post->post_content,
                'post_type' => $post->post_type,
                'post_status' => $post->post_status,
                'post_parent' => $post->post_parent,
                'post_author' => get_current_user_id(),
            );

            $new_post_id = wp_insert_post( $args );

            if ( $new_post_id ) {
                // Duplicate meta fields
                $meta_fields = get_post_custom( $post_id );
                foreach ( $meta_fields as $key => $values ) {
                    foreach ( $values as $value ) {
                        add_post_meta( $new_post_id, $key, $value );
                    }
                }

                // Redirect to the duplicated post
                wp_redirect( admin_url( 'post.php?action=edit&post=' . $new_post_id ) );
                exit;
            }
        }
    }
}
add_action( 'admin_post_content_duplicator_duplicate_post', 'content_duplicator_duplicate_post' );

它甚至在生成代码后提供了一组指令。

ChatGPT 说明。
该代码不仅附带说明,而且 ChatGPT 甚至说“请”!

然后我使用 The Hub 的文件管理器将新的插件文件上传到我的测试站点的wp-content > plugins目录。

The Hub - 文件管理器
在此屏幕截图中有很多要解压缩的操作。

并创建了一个虚拟帖子来测试插件......

WordPress 测试帖。
该插件是否复制了这个俗气的帖子? 让我们找出答案!

这是激活插件前帖子的菜单选项……

具有单个帖子条目的 WordPress 帖子表。
带有默认选项的默认帖子。

激活插件后...

WordPress 插件屏幕 - 激活内容复制器
“Activate Content Duplicator”——听起来像是星际迷航电影中的台词。

成功!

WordPress 插件屏幕 - 插件激活消息。
无偿截图证明插件已成功激活。

插件已激活。 但它真的有效吗?

这又是我的测试帖子(请注意,插件在激活后向菜单添加了一个新的“重复”项)。 然后我点击“复制”看看会发生什么......

WordPress 帖子表 - 带有新重复项的帖子条目。
ChatGPT 甚至在代码中添加了“重复”菜单项工具提示!

并创建了一个重复的帖子!

重复的 WordPress 帖子的示例。
原始帖子的副本。

这是显示原始帖子和重复帖子条目的帖子表。

包含原始帖子和重复帖子的 WordPress 帖子表。
原始帖子及其克隆版本。

我敢肯定,通过更好的及时工程和一些代码调整,插件可以得到显着改进。 例如,我更希望插件将新复制的帖子的帖子状态设置为“草稿”而不是发布它,但 ChatGPT 提供了一个简单的 WordPress 插件。 这是基本的,但它完成了工作。

最后一步是请以编写 WordPress 插件代码为生的人仔细检查代码,并征求他们对使用 ChatGPT 等工具编写插件代码的意见。

来自我们的专家插件开发人员的反馈

将插件上传到我们的一个测试渠道后不久,我收到了一位开发人员的 ping。 以下是他们反馈中提供的一些要点:

  • “ChatGPT 等人很擅长回答你已经知道答案的问题。”
  • “我过去也用它来为我构建一个简单的插件,但只要我给出更复杂的提示,它就会开始乱七八糟,所以最终我手动调试给定的代码才能工作,否则它会它需要很长时间才能逐行调试它。”
  • “基本上,它按照它说的去做。 但是,它确实按字面意思做了。 与此一样,它将复制一个帖子及其相应的 postmeta(自定义)字段。 但是,它似乎不会将任何分类法传播到重复的帖子(插件应该复制并分配相同的分类术语,例如类别或标签,从原始帖子到重复的帖子)。”
  • 如果我对此非常挑剔,我还会提到它还没有 L10n-ready——没有翻译这个插件的选项。 但是,这只是非常挑剔 - 我真的不认为,我也不希望提示生成的插件足够通用,以至于根本需要这样的东西。 对我来说,它更像是一种“非常具体的问题领域”,包括所使用的语言。 归根结底,它确实按照它说的去做,这非常好。”

除了检查 ChatGPT 生成的 WordPress 插件代码并提供如上所示的反馈外,我们的开发人员在评估 ChatGPT 当前生成代码的能力后,还同意以下要点:

1 – 务必谨慎行事,不要盲目接受 ChatGPT 生成的代码是正确的。

  • ChatGPT 可以提供答案,但由用户来评估答案是否正确。
  • 存在从 ChatGPT 收到不正确或无意义的答案的风险,无论是明显的还是微妙的。
  • 务必谨慎行事,不要盲目接受生成的代码是正确的。
  • ChatGPT 的输出应被视为自动完成,使生活更轻松,但需要谨慎和验证。

然而,从坏代码或无意义代码中辨别好代码的能力意味着……

2 – 用户应该对WordPress插件开发有足够的知识和理解,以便根据需要评估和修改生成的代码。

  • ChatGPT 可以帮助简化和加快构建简单的自定义 WordPress 插件、生成代码片段和提供解释的过程。 然而,任何更复杂的东西都需要插件开发经验和编码技能。
  • 在没有足够知识的情况下使用 ChatGPT 可能会导致负面后果或代码不可靠。
  • 完全依赖 ChatGPT 而没有批判性思考类似于盲目复制 Stack Overflow 的第一个答案(Stack Overflow 线程提供更多上下文、多个答案和其他用户的反馈,使其成为更可靠的资源,但 Stack Overflow 线程往往更通用的,而 ChatGPT 可以为个别查询提供特定的答案)。

3 – 利用其他资源,例如 WordPress 文档、教程和社区论坛,以及 ChatGPT 可以更全面地了解 WordPress 插件开发。

  • 当您探索使用 ChatGPT 进行 WordPress 插件开发的可能性时,与 WordPress 社区互动很有价值。 分享您的经验、寻求反馈并寻求有经验的开发人员的指导。 参与论坛、参加 WordPress 聚会或加入在线社区可以提供有价值的见解并帮助您改进插件开发过程。
  • 此外,考虑遵循 WordPress 安全最佳实践来保护您的网站免受潜在漏洞的侵害。 ChatGPT 可以提供有关您可以实施以保护您的插件的安全措施的建议。
  • 在将它们部署到生产环境之前,保持对所需功能的清晰理解并彻底检查和测试生成的代码并保护您的自定义插件也很重要。

ChatGPT 能把你变成 WordPress 插件开发者吗?

在本文中,我们探索了如何利用 ChatGPT 构建简单的自定义 WordPress 插件,即使您的编码经验有限。

在其他文章中,我们已经看到像 ChatGP 这样的 AI 支持的工具可以简化您的工作流程、提高工作效率并释放新的可能性(查看我们最近的文章,了解 ChatGPT 可以如何帮助您作为 WordPress 开发人员)。

虽然有超过 60,000 个免费的 WordPress 插件可用,涵盖了您能想到的各种功能,但有时您可能需要定制解决方案来满足客户的特定要求。

除了插件的核心功能之外,您还可以利用 ChatGPT 为自定义用户界面生成代码。 凭借其理解提示和生成 HTML、CSS 和 JavaScript 片段的能力,您可以创建直观的管理界面、前端组件和交互式元素,以增强用户体验并让您交付精美的最终产品。

通过利用语言模型的功能,您可以生成代码片段、优化功能并创建用户友好的界面。 但是,了解生成的代码、审查和优化代码并在将自定义插件部署到您的实时网站之前彻底测试它们至关重要。

生成的代码可能还需要调整以符合编码标准、命名约定或特定项目要求。 这需要一定的编码知识和技能,优化代码并确保它遵循 WordPress 编码指南以获得更好的可维护性。

底线:

以下是我尝试让 ChatGPT 从头开始​​为我编写插件后的发现:

  1. 没有我们经验丰富的开发人员的帮助,我无法完成这项工作。
  2. 在没有编码知识的情况下使用 ChatGPT 生成代码确实具有挑战性——它有助于了解您在做什么 :)
  3. 虽然 ChatGPT 是一个强大且有价值的工具,但 AI 似乎不会很快取代熟练的编码员。

对开发 WordPress 插件感兴趣?

查看我们关于 WordPress 插件开发的一些教程和文章:

  • WordPress 插件开发入门
  • WordPress 挂钩快速深入指南
  • 以面向对象的方式创建 WordPress 插件

您是否尝试过使用 ChatGPT 等 AI 工具来构建或自定义 WordPress 插件? 在下面的评论中分享您的想法和经验。