ChatGPT は実際に機能する便利な WordPress プラグインを構築できますか?

公開: 2023-05-22

AI はノンコーダーをプロの WordPress プラグイン開発者に変えることができるでしょうか? それを知るために、私たちは ChatGPT にカスタム WordPress プラグインを一から構築するよう依頼し、その後、優秀な開発者チームにコードを検査してもらいました。

AI は現在世界で最も人気のある 2 文字の単語です。 AI が私たちの仕事を奪うかどうかについての最近のニュースの見出しがすべてある中で、私たちが知りたいと思ったのは…ChatGPT はコードを最初から書かなくても機能的で便利な WordPress プラグインを実際に開発できるのでしょうか? また、プラグインはコーディングのベストプラクティスを満たしていますか?

幸いなことに、WPMU DEV は世界で最も堅牢な WordPress プラグインをいくつか構築しているため、ChatGPT をテストできる専門の WordPress プラグイン開発者が多数います。

実際、当社の仮想廊下を散歩していると、WordPress のプログラマーや開発者に遭遇せずにはいられません。 Neo が Matrix のデジタル レイン コードを見るのと同じように、このあたりの誰もが WordPress プラグインを見て PHP を見ることができるようです。

マトリックスコード
経験豊富な 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 チュートリアルの作成に多くの時間を費やしている私は、プラグインのテストやスクリーンショットの作成などのためにダミーのコンテンツが必要になることがよくあります。

そこで、AI が生成したダミー コンテンツ プラグインを、私がよく使用する FakerPress というプラグインでモデル化するのは素晴らしいことだと思いました。

ChatGPT は私のリクエストを押し返し、私がリクエストしたすべての機能を備えた完全に機能する WordPress プラグインの作成は 1 回の応答の範囲を超えていることを知らせてくれました。

ただし、基本的なテンプレートの提供、私が言及した機能のいくつかの実装方法のガイド、さらにはプラグインのディレクトリとファイルの作成方法の説明も提供してくれました。

WordPress プラグイン開発プロンプトに対する ChatGPT 応答。
うーん…WordPress プラグインを作成するという私の最初の試みは野心的すぎたのかもしれません。

最初は、ChatGPT が非常に印象的なコードを出力しました…

ChatGPTコード
コーディングについて「zip」に詳しい人にとって、上記のコード スニペットは確かに印象深いものに見えるでしょう。

ChatGPT は、次のステップを完了するために必要なすべての追加コードも出力します。

ChatGPT - WordPress プラグイン開発プロンプト。
コーディング スキルが不足していた私は、プラグイン開発プロセスの各ステップをガイドする ChatGPT に依存していました。

プラグイン コードが出力されたので、次のステップはプラグインをテスト サイトにアップロードし、テストして機能することを確認することでした。

ステップ 3 – カスタム プラグインをテストする

プラグイン コードを含むフォルダーをテスト サイトのwp-content > pluginsディレクトリにアップロードし、プラグイン画面内でアクティブ化した後…

プラグイン画面 - Dummy Content Generator アクティベーション メニュー リンク。
そして今のところ、私たちは皆[ドラムロール]を待っています...
致命的なエラーが発生しました!

プラグイン画面 - 致命的なエラー メッセージ。
なんというクライマックスだろう…私の WordPress プラグイン開発キャリアの最低点だ!

ChatGPT が提供する追加のスニペットを正しく追加しなかったのではないかと考え、すべてのコードを 1 つのファイルとして提供するように要求しました。これをコピーして貼り付けるだけで、アップロードされたプラグイン ファイルを上書きして更新できます。

ChatGPT プロンプトと応答のスクリーンショット。
なぜ最初にコード全体をコピーして貼り付けることができなかったのでしょうか?

出力するコードが多かったので、プロセスが停止するたびに、ChatGPT に続行するように指示しました…

ChatGPT プロンプトと応答のスクリーンショット。
ChatGPT を続けるには、時々、ちょっとした優しい励ましが必要です。

このプロセスを数回繰り返すと、ChatGPT はコード全体を出力し、いくつかの役立つ情報も提供しました。

ChatGPT 応答のスクリーンショット。
丸々 2 分待った後…ChatGPT はついにすべてのプラグイン コードを出力しました。

新しいコードを含むプラグイン ファイルをテスト サイトにアップロードし、サイトの管理領域にジャンプしてプラグインをアクティブにしました。

出来た! あるいは、そのように見えました。

ChatGPT はプラグインに独自のメニュー項目を与えました…

Dummy Content Generator WordPress プラグイン - ChatGPT によって作成されました
ChatGPT がこれをすべて作成しました。

そして、派手なボックスやフィールドがたくさんある設定画面…

Dummy Content GeneratorのWordPressプラグイン設定画面。
印象的に見えますが、うまくいくでしょうか?

しかし、作成する投稿やページの数を指定するフィールドが表示されなかったので、いくつかのボックスにチェックを入れ、値を入力し、[変更を保存] ボタンをクリックしてどうなるかを確認しました。

Dummy Content Generator WordPress プラグイン - ChatGPT によって作成されました
そして今、真実の瞬間が…

そして…まったく何も起こりませんでした!

単一の「Hello world」投稿を示す WordPress 投稿テーブル。
私の WordPress プラグイン開発キャリアの中で最も低いところ…何もしないプラグインです。

私の派手なプラグインはすべてごまかしで、宇宙を飛んでいるふりをしながら回せる役に立たないノブや押せるボタンがたくさんある子供の遊び場の宇宙船のようなものでした。

そこで、Slack 経由で開発者の 1 人に連絡し、プラグイン ファイルを見てもらうように依頼しました。

返されたコメントには次のようなものがありました。

  • 「プラグインは、管理ページが読み込まれるたびにランダムなコンテンツを生成しようとします。」
  • 「関数dummy_content_generator_generate_content_paragraphsを呼び出します。この関数は、生成しようとするすべての段落に対してdummy_content_generator_get_random_paragraphの呼び出しを試みます。 問題は、 dummy_content_generator_get_random_paragraph関数がないことです。
  • 「ページはある時点まで読み込まれますが、さらに不足しているものがあるためエラーが発生します。」
  • 「言及されたすべての問題を除けば、検証はまったく行われておらず、出力のエスケープもありません。これはひどいことです。」
  • 「何かを出発点にするという点で、これは非常に貧弱なものです。 プラグインが機能するという点では、これはそれに近いものではありません。」

何度か議論を行った結果、プラグインにはかなりの間違いがあり、それを修正するには多大な労力がかかるだろうと判断され、プロジェクトを破棄するよう提案されました。

しかしこの時点で、私は自分の使命に熱中しすぎて、単純にすべてを放棄して諦めることができませんでした。 ウィンストン・チャーチル卿の有名な言葉を思い出してください( 「ブランデーをもう一杯持ってきて」 「決して屈しない、決して屈服しない、決して、決して、決して…」)、私は今がその時だと決心しました…

テイク #2…

さて、ChatGPT を使って WordPress プラグインをゼロから構築しようとした私の最初の試みは惨めな失敗でした。 これ自体、複雑なコーディング タスクを実行する ChatGPT の能力について貴重な洞察を提供しました (または、チームの誰かが言うように、「広範なコーディング知識がなければ ChatGPT を使用してコーディングすることはできません」)。

そこで、「テイク #2」では、よりシンプルなプラグイン リクエストを使用して再試行することにしました。

振り出しに戻って、天才的なひらめきが私の頭の中に灯りました…ChatGPT に、コードを生成できるシンプルな WordPress プラグインのアイデアを提案してもらってみてはいかがでしょうか?

それで、それが私がやったことです。 私がすぐに作成したプロンプトは次のとおりです…

WordPress プラグインのアイデアを生成するための ChatGPT プロンプト。
私の天才的なプロンプト。

そして、これが 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ディレクトリにアップロードしました。

ハブ - ファイルマネージャー
このスクリーンショットには、解凍するためのアクションがたくさんあります。

そして、プラグインをテストするためにダミーの投稿を作成しました…

WordPressのテスト投稿。
プラグインがこの安っぽい投稿を複製したのでしょうか? 確認してみましょう!

プラグインを有効にする前の投稿のメニュー オプションは次のとおりです。

単一の投稿エントリを含む WordPress 投稿テーブル。
デフォルトのオプションを備えたデフォルトの投稿。

プラグインを有効化したら…

WordPress プラグイン画面 - Content Duplicator をアクティブにする
「コンテンツ デュプリケーターをアクティブにする」 – スタートレック映画のセリフのように聞こえます。

成功!

WordPress プラグイン画面 - プラグインが有効化されたメッセージ。
プラグインが正常にアクティブ化されたことを証明する無償のスクリーンショット。

プラグインが有効になりました。 しかし、実際にそれはうまくいったのでしょうか?

これが私のテスト投稿です (アクティベーション後、プラグインによってメニューに新しい「複製」項目が追加されたことに注意してください)。 次に、「複製」をクリックして何が起こるかを確認してみました。

WordPress 投稿テーブル - 新しい重複アイテムを含む投稿エントリ。
ChatGPT では、「複製」メニュー項目のツールチップもコードに追加されました。

そして重複投稿が作成されました!

複製された WordPress 投稿の例。
元の投稿の複製。

これは、元の投稿と複製された投稿のエントリを示す投稿の表です。

元の投稿と複製された投稿を含む WordPress 投稿テーブル。
元の投稿とそのクローン バージョン。

プロンプトエンジニアリングを改善し、コードを微調整すれば、プラグインは大幅に改善された可能性があると確信しています。 たとえば、プラグインが新しく複製された投稿の投稿ステータスを公開するのではなく「下書き」に設定することを希望しますが、ChatGPT は機能するシンプルな WordPress プラグインを提供しました。 基本的なことですが、十分に機能しました。

最後のステップは、WordPress プラグインのコーディングを生業としている人にコードを精査して、プラグインのコーディングに ChatGPT などのツールを使用することについて意見を求めることです。

弊社の専門プラグイン開発者からのフィードバック

テスト チャネルの 1 つにプラグインをアップロードした直後、開発者の 1 人から ping を受け取りました。 フィードバックで提供された重要なポイントの一部を以下に示します。

  • 「ChatGPT らは、すでに答えがわかっている質問にきちんと答えてくれます。」
  • 「私も以前、単純なプラグインを構築するためにこれを使用しましたが、より複雑なプロンプトを提供している限り、物事が混乱し始めたので、最終的には指定されたコードが機能するように手動でデバッグしました。実際に一行ずつデバッグするには時間がかかります。」
  • 「基本的には、言われた通りにやります。 ただし、文字通り文字通りにそれを実行します。 同様に、投稿とそれに対応するポストメタ (カスタム) フィールドが複製されます。 ただし、複製された投稿に分類法が反映されることはないようです (プラグインは、カテゴリやタグなどの同じ分類法用語を元の投稿から複製された投稿にコピーして割り当てる必要があります)。
  • これについて非常に細かいことを言うなら、このプラグインは L10n 対応ではないことにも言及したいと思います。このプラグインを翻訳するオプションはありません。 しかし、それは非常に細かいことを言っているだけです。私はプロンプト生成プラグインがそのようなものを必要とするほど汎用的であるとはまったく思っていませんし、期待するつもりもありません。 私にとって、それは、使用される言語も含めて、「非常に具体的な問題領域」のようなものです。 結局のところ、それは言われたとおりに実行するので、それは非常に素晴らしいことです。」

ChatGPT によって生成された WordPress プラグイン コードを検査し、上記のようにフィードバックを提供することに加えて、開発者は ChatGPT の現在のコード生成機能を評価した後、次の重要な点にも同意しました。

1 – ChatGPT で生成されたコードを正しいものとして盲目的に受け入れないように注意することが重要です。

  • ChatGPT は答えを提供できますが、答えが正しいかどうかを評価するのはユーザー次第です。
  • ChatGPT からは明らかな場合も微妙な場合も含め、不正確または意味不明な回答を受け取るリスクがあります。
  • 生成されたコードを正しいものとして盲目的に受け入れないように注意することが重要です。
  • ChatGPT の出力はオートコンプリートとして扱われ、作業が楽になりますが、注意と検証が必要です。

ただし、良いコードと悪いコードまたは無意味なコードを識別する能力は、次のことを意味します…

2 – ユーザーは、生成されたコードを必要に応じて評価および変更できるよう、WordPress プラグイン開発に関する十分な知識と理解を持っている必要があります。

  • ChatGPT は、シンプルなカスタム WordPress プラグインを構築し、コード スニペットを生成し、説明を提供するプロセスを簡素化および迅速化するのに役立ちます。 ただし、より複雑なものには、プラグイン開発の経験とコーディングのスキルが必要です。
  • 十分な知識なしで ChatGPT を使用すると、悪影響が生じたり、コードの信頼性が低下したりする可能性があります。
  • 批判的思考を行わずに ChatGPT のみに依存することは、スタック オーバーフローからの最初の回答を盲目的にコピーすることに似ています (スタック オーバーフロー スレッドは、より多くのコンテキスト、複数の回答、他のユーザーからのフィードバックを提供するため、より信頼性の高いリソースになりますが、スタック オーバーフロー スレッドは、汎用的なものであるのに対し、ChatGPT は個々のクエリに対して特定の回答を提供できます)。

3 – ChatGPT と並行して、WordPress ドキュメント、チュートリアル、コミュニティ フォーラムなどの他のリソースを利用すると、WordPress プラグイン開発をより包括的に理解できます。

  • WordPress プラグイン開発に ChatGPT を使用する可能性を探る場合、WordPress コミュニティに参加することが重要です。 経験を共有し、フィードバックを求め、経験豊富な開発者からの指導を求めてください。 フォーラムに参加したり、WordPress ミートアップに参加したり、オンライン コミュニティに参加したりすると、貴重な洞察が得られ、プラグイン開発プロセスを改善するのに役立ちます。
  • さらに、Web サイトを潜在的な脆弱性から保護するために、WordPress セキュリティのベストプラクティスに従うことを検討してください。 ChatGPT は、プラグインを保護するために実装できるセキュリティ対策に関する推奨事項を提供します。
  • また、必要な機能を明確に理解し、生成されたコードを徹底的にレビューしてテストし、カスタム プラグインを実稼働環境にデプロイする前に保護することも重要です。

ChatGPT を使用すると、WordPress プラグイン開発者になれるでしょうか?

この記事では、コーディング経験が限られている場合でも、ChatGPT を利用してシンプルなカスタム WordPress プラグインを構築する方法を検討しました。

他の記事では、ChatGP のような AI を活用したツールがワークフローを合理化し、生産性を向上させ、新たな可能性を解き放つことができることを見てきました (ChatGPT が WordPress 開発者として役立つ方法についての最近の記事をご覧ください)。

想像できるあらゆる種類の機能をカバーする 60,000 を超える無料の WordPress プラグインが利用可能ですが、クライアントの特定の要件を満たすカスタム ソリューションが必要な場合もあります。

プラグインのコア機能を超えて、ChatGPT を利用してカスタム ユーザー インターフェイスのコードを生成することもできます。 プロンプトを理解し、HTML、CSS、および JavaScript スニペットを生成する機能により、ユーザー エクスペリエンスを向上させ、洗練された最終製品を提供できる直感的な管理インターフェイス、フロントエンド コンポーネント、およびインタラクティブな要素を作成できます。

言語モデルの機能を利用することで、コード スニペットを生成し、機能を最適化し、ユーザー フレンドリーなインターフェイスを作成できます。 ただし、カスタム プラグインをライブ Web サイトにデプロイする前に、生成されたコードを理解し、レビューして改良し、徹底的にテストすることが重要です。

生成されたコードは、コーディング標準、命名規則、または特定のプロジェクト要件に合わせて調整する必要がある場合もあります。 これには、コードを最適化し、保守性を向上させるために WordPress コーディング ガイドラインに従っていることを確認するのと同様に、ある程度のコーディングの知識とスキルが必要です。

結論:

ChatGPT にプラグインを最初からコーディングしてもらった結果、次のような結果が得られました。

  1. 経験豊富な開発者の助けがなければ、これを成し遂げることはできませんでした。
  2. コーディングの知識なしで ChatGPT を使用してコードを生成するのは非常に困難です。何をしているのかを知るのに役立ちます :)
  3. ChatGPT は強力で価値のあるツールですが、すぐに AI が熟練したプログラマーに取って代わるようには思えません。

WordPress プラグインの開発に興味がありますか?

WordPress プラグイン開発に関するいくつかのチュートリアルと記事をご覧ください。

  • WordPress プラグイン開発を始める
  • WordPress フックの迅速かつ詳細なガイド
  • オブジェクト指向で WordPress プラグインを作成する

ChatGPT などの AI ツールを使用して WordPress プラグインを構築またはカスタマイズしようとしたことがありますか? 以下のコメント欄であなたの考えや経験を共有してください。