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 插件? 在下面的評論中分享您的想法和經驗。