ChatGPT を使用して WordPress プラグインを作成する私の旅: 120 時間の作業、未経験
公開: 2024-08-28正直に言うと、ChatGPT を使用して WordPress プラグインをほんの数時間で構築できると思っていました。少なくとも、YouTube のチュートリアルや Twitter のスレッドすべてを見て、私はそう信じるようになりました。
しかし、言っておきますが、これらのストーリーでは、いくつかの重要な詳細が省略されています。正確に言うと、約 120 時間に相当する詳細です。はい、実際にプラグインを構築するのに最初から最後までかかった時間は 120 時間です。
ちなみに、私にはプラグインや WordPress の開発経験がありませんでしたが、とにかく飛び込んでみることにしました。そして、その挑戦は大好きでしたが、予想よりもはるかに困難でした。道を進むたびに、次から次へと障害にぶつかりましたが、その多くは存在すら知りませんでした。イライラすることもありましたが、非常に大きな(!)学びの経験でもありました。
私の足跡をたどるつもりなら、事前にこの記事を最後まで読んでおくことを強くお勧めします。自己宣伝としてそんなことを言っているわけではありません。私がそう言っているのは、それが本当に何時間も、場合によっては何日も余分な作業を節約できるからです。このプロセスで偶然出会ったものの、事後になるまで重要だったとは全く気付かなかったことがたくさんあります。残念なことに、そのせいで、防げたはずのコードが無数に改訂されることになりました (多くのフラストレーションに満ちていました)。これを読めばそんな悩みはなくなります。
これは誰に向けたもので、誰に向けたものではない 🙋♂️
あなたの経歴やスキルセットによっては、これを行うのに「十分な資格がある」かどうか疑問に思うかもしれません。これだけは言います:
前提となるコーディングの知識は必要ありませんが、コードとプラグイン開発の一般的なプロセスを熱心に学ぶ必要があります。通過すべきフェーズは数多くありますが、多くの場合、あるフェーズを完了するために必要なスキル (またはツール) の点で、あるフェーズが他のフェーズとは何の関係もありません。つまり、たくさんのことを学ぶ準備ができているということです。
プラグインの性質と最終目標によっては、最終製品を思いつくまでに軽く 1 か月以上かかることがあります。
PHP、JavaScript、CSS が何をするのかを知るのと同様に、細部に目を向けてパターンを認識することが非常に役立ちます。これらを使用してコーディングする方法を知る必要はありませんが、その目的と使用方法を理解すると有利になります。
上記のどれにも当てはまらず、特に学習意欲が高く、手っ取り早く簡単な解決策を探している場合、これはあなたには適していません。それは速くも簡単でもありません。しかし、努力すればそれは可能です。
それでよろしければ、始めましょう。
フェーズ 1: プラグインを詳細に計画します 📝
あなたが自問し、それに答える必要がある最初の質問は、どのようなタイプのプラグインを構築したいのか、そしてそれによって何をしたいのかということです。
実際に構築とコーディングを開始できるよう、急いでこれを進めたくなるかもしれませんが、時間をかけて取り組むことをお勧めします。ここで行うことによってプロンプトの基礎が築かれ、その場で何かを追加するのではなく、組織的な方法で構築できるようになります。このフェーズを効果的に通過するには、次の点を考慮してください。
- プラグインにどのような機能を持たせたいですか?
- wp-admin 側をどのようにしたいですか?
- ワイヤーフレームまたはフローチャートを作成して、プラグインのワークフローを視覚化します。
- 計画を立てて、細部に至るまで説明します。
- 個人的に使用するか、WordPress リポジトリでパブリックアクセスできるようにするかを決定します。
機能
wp管理者
ワイヤーフレームまたはフローチャート
すべてを組み合わせて詳細に説明します
プライベート使用と WordPress リポジトリを介したパブリックアクセス
フェーズ 2: ChatGPT に開発を開始するための詳細なプロンプトを表示します 🗣️
ここでの主な目的は、GPT にプラグインの概要を明確な指示とともに提供することです。一般的なアドバイスとして、家全体を一度に建てようとしないことをお勧めします。レンガごとにアプローチする方が良いでしょう。
例として私のプラグインを構築するとします。
8 つのエフェクトがありますが、1 つのエフェクトから始めたいことを GPT に伝えることをお勧めします。まるで8 エフェクトのプラグインではなく1 エフェクトのプラグインを構築しているかのようです。次に、バックエンド設定領域も含めて、エフェクトが機能することを確認します。バグを修正し、すべてが良好になったら、次のエフェクトを追加します。あとは、このプロセスを 1 つずつ実行するだけです。
このようにする理由は、コードが複雑になるにつれてコードに組み込まれる可能性のあるバグを修正しやすくするためです。 GPT がすべてのコードを一度に生成し、多くの部分が機能しない場合、修正するのははるかに困難になります。
GPT にプラグインの全体的なビジョンの広範な概要を提供したいと考えていますが、最初に特定のことに焦点を当ててプロンプトを終了します。
時間を節約するために、ChatGPT に提供して開始できるサンプル テンプレートを作成しました。
括弧 [X] 内のセクションでは入力を完了する必要があります。構築する予定のプラグインの種類に応じて、さらに編集する必要がある場合とない場合があります。
プロンプトの内容がすべて理解できなくても、心配しないでください。私も理解できませんでした。プロセスを経るにつれて学習していきます。
私のプロンプト🤖
I want to build a WordPress plugin called [name] that does the following: [General overview but don't give GPT the specifics yet] I'd like it to work via [Refer back to the section "combine everything and describe it in detail" from phase one; think about how you want your plugin to function - if you're not sure, then you can delete this part] . I would also like to create a settings menu in wp-admin so that users can [Explain what you want your settings menu to look like and do, including any specific UI/UX considerations; if you create any wireframes, upload those as well] I plan on using the following tools for this process: - Docker and/or Local by Flywheel {Choose one or use both} - Terminal (MAC) {if you're using a PC, substitute with Command Prompt} - Sublime Text - Chrome and Chrome inspector tool Also, I want to use GitHub for version control to track changes and collaborate effectively. I will use the default WordPress template provided by GitHub to generate the code for the .gitignore file. However, I will need your help to walk me through how to set up a repository and how to commit my files to it. For the main PHP file, the author name should be [your name] and the author URI should be [your website if you have one] . For any code you generate, please use tabs for indentation and not spaces. {important if you plan on submitting your plugin to the WordPress repository} If you need to enqueue any scripts, please ask me questions to help me figure out whether we should use conditional loading or if we should enqueue globally. In addition, when generating CSS, please follow BEM (Block Element Modifier) methodology. Let's begin with [insert which feature you'd like to build first] Please [Optional: help me setup Local by Flywheel and then] generate the initial PHP file and advise on next steps after that.
ChatGPT にプロンプトを入力すると、以下で説明する残りの手順が表示されます。 ChatGPT の気分や、私が説明したプロセスに従いたいというあなた自身の願望によっては、すべてを列挙する方法が、提示されているほど直線的ではない可能性があることに注意してください。
私が何を言いたいのかを理解していただくために、私は自分自身でプロンプトを 3 回異なる方法でテストしました。 Local by Flywheel のセットアップと初期 PHP ファイルの生成を支援するだけでなく、毎回異なる方法で他のステップを実行することを選択しました。
初めての試み

私の最初の試みでは、ChatGPT は PHP ファイルを生成するだけでなく、次にどのように進めるかについて 2 つのオプションを提示しました。特に、条件付き読み込みによるスクリプトのエンキューに関する指示に従い、それについても言及しています。
2 回目の試行
2 回目の試行では、最も単純な PHP ファイルが生成されましたが、手順を実行するという点では、全体的な応答は最も完全なものになりました。すぐにターミナルを使用してプロジェクト ディレクトリを設定し、Sublime を初期化します。 Git リポジトリの設定方法まで指導していただきました。

3回目の試行
3 回目の試みは、最初の試みと多少似ていました。ただし、最初の試みとは異なり、ChatGPT はスクリプトの条件付き読み込みを設定せず、それについて私に尋ねることもありませんでした。デフォルトでグローバルとして生成されただけです。

持ち帰り
これら 3 つの試みを簡単に紹介した理由は、ワークフローが必ずしも標準化されるわけではないという先ほど述べたことを強調するためだけでなく、プロンプトは GPT に対するものと同じくらいあなたにとっても重要であることを指摘するためでもありました。
私が言いたいのは、ChatGPT が何をしているのか、何をしていないのかに注意を払い、それが失敗した場合に軌道に戻すのはあなた次第だということです。したがって、この作業を進める際には、プロンプトと、後でデバッグ セクションで共有するポインタを忘れずに参照してください。 ChatGPT に、必要なことを必要なだけ実行するように思い出させ、方向を変えます。
私のプラグインをダウンロードしてテストしてください 📥
私のプラグインの「動作バージョン」を試してみたい場合は、zip ファイルが以下にあります。近い将来、これを更新して WP リポジトリのバージョンを含める予定ですが、今のところはこれで使用できるようになります。
フェーズ 3: ツール、スクリプト、ディレクトリ、Git 👩💻
このフェーズでは、プラグインを構築するための基礎を設定します。また、特にスクリプトのインストールやターミナル (PC の場合はコマンド プロンプト) の使用を開始すると、学習曲線が急速に増加する場所でもあります。内訳は次のとおりです。
- どのローカル環境ツールを使用するかを決定します (例: Local by Flywheel、Docker)。
- プロジェクトのディレクトリを設定します。
- スクリプト (npm、Composer など) をインストールします。
- Git リポジトリ (「リポ」) をセットアップし、そこにプラグイン ファイルをコミット (アップロード) します。
ローカル環境の構築
プロジェクトディレクトリを設定する
スクリプトをインストールする
Git リポジトリ (「リポジトリ」) を作成し、ファイルをコミットします。
フェーズ 4: プラグインのプレイタイム 🖱️
すべてのフェーズの中で、このフェーズと次のフェーズがおそらく最も楽しいと思います。なぜなら、すべてがうまくいくのが見え始めるときだからです。まず、ローカルの WordPress インストールにログインする必要があります。最終的に Local by Flywheel を使用することになった場合は、非常に簡単です。右上近くにある[WP Admin] ボタンをクリックするだけです。

Docker または別のローカル開発ツールを使用することになり、サイトにアクセスする方法がわからない場合は、ChatGPT に問い合わせてください。
ログインしたら、 「プラグイン」→「インストールされたプラグイン」に移動してプラグインをアクティブ化します。次に、リストからプラグインを見つけて、 「有効化」をクリックします。

⚠️重要: ここにプラグインが表示されない場合でも、パニックにならないでください。ディレクトリの不一致である可能性が最も高くなりますが、いずれにしても、ChatGPT をタップすると、問題を解決するのに役立ちます。繰り返し試行しても依然としてスタックし、ChatGPT が WordPress デバッグ モードを試すことを提案しなかった場合は、ChatGPT にそのコード スニペットを提供するように依頼してください。それらは次のようになります。
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
プラグインを有効化したら、使用を開始してメモを作成します。
- すべては想定どおりに機能していますか?可能性は非常に低いです。
- 何が機能していないのでしょうか?どのような点でうまくいかないのでしょうか?
- 最初のプロンプトの説明で完全に見落としていて、適切に機能していない小さな点は何ですか?
メモを作成したら、次の段階であるデバッグと lint に進む準備が整います。
フェーズ 5: デバッグと lint 💻
プラグインの複雑さとバグには相関関係があります。プラグインが複雑になるほど、バグが発生する可能性が高くなります。ただし、より単純なプラグインでも lint とデバッグが必要になります。

糸くず
この記事で初めて「リンティング」という言葉を目にし、それが何を意味するのかわからない場合は、非常に簡単に言うと、プラグインのコードをそのタイプのコードの一連のルールと標準に照らしてチェックします。次に、エラーや不一致が見つかったかどうか、それらがどの行にあるのか、およびそれらを解決する方法を示します。

リンティングは非常に簡単です。作業するコード/ファイルの種類に応じた適切な lint ツールを使用していることを確認してください。
- PHP リンティング用の WordPress-Coding-Standards を備えた PHP_CodeSniffer。
- JavaScript リンティング用の ESLint。
- CSS リンティング用の StyleLint。
JavaScript の場合は、以下を追加することもできます。
- ESLint Unicorn: 100 を超える強力な ESLint ルール。
- ESLint Promise: API 呼び出し、データベース クエリ、ファイル処理、または完了までに時間がかかる操作などの非同期タスクの管理に役立ちます。
デバッグ
lint とは対照的に、デバッグは前のフェーズで行ったこととよく似ています。つまり、プラグインを自分で使用し、修正する必要がある問題を特定し、それを自分で修正するか、ChatGPT に支援を依頼します。
私個人としては、デバッグは lint よりも複雑であると感じました。大きな理由の 1 つは、lint を実行すると、lint プロセスの出力によって、問題が何であるか、コード内のどこにあるのかが正確にわかるためです。デバッグでは、そんな贅沢はできません。それを理解するのはあなたと ChatGPT 次第です。
ただし、ChatGPT は問題のあるコード行に焦点を当て続けるのが難しいため、「起動」する前に「準備完了」の処理を行う必要があります。
作業を容易にするために、デバッグ段階を開始する前に私が自分自身に与えたであろうさまざまなアドバイスをすべてリストにまとめました。
最後に、デバッグと lint のどちらを先にすべきか疑問に思っている場合、私の理解では、明確な答えはありません。 lint する前にデバッグしましたが、プロセスを進めるときに ChatGPT の設定をデフォルトにすることも、どちらを最初に実行するかを指定することもできます。
フェーズ 6 (オプション): テスト 🔬
比較的単純なプラグインを構築していて、独自の手動テストに基づいてその機能に自信がある場合は、必ずしもこの手順を実行する必要はありません。なぜそう言ったのかというと、これらのテストをコーディングするにはまだ多くの作業が必要であり、ChatGPT を使用してすぐに機能するプラグインを入手できないのと同様に、バグが存在しない機能テストを入手できる可能性も低いからです。
簡単に言うと、時間の投資と実際の価値の間にはトレードオフの関係があります。
私自身の経験では、ユーザーがプラグインを操作したときにプラグインが主な機能を実行できるかどうかを確認するテストを 1 つ作成することに成功しました。しかし、デバッグには丸 1 日かかりました。

実用的な観点から、プラグインの機能をすでに手動でチェックしていましたが、テストですべてが機能していることが確認できたのはうれしかったです。
私よりも複雑なプラグインを構築しようとしている場合、またはプラグインの機能がバックエンド (機能しているかどうかを手動で確認できない) に重点を置いている場合は、時間をかけてテストを適切に実行するには、手作業で行う価値があります。
検査の種類
考慮すべきツール
フェーズ 7 (オプション): プラグインを WordPress リポジトリに送信します 🥳
ここまで到達できれば、ことわざにあるプラグインの山を無事に登ったことになります。あとは、WordPress リポジトリ内の他の 59,650 個のプラグインに加わるようにフラグを立てるだけです。
これには独自の別のプロセスがあり、[プラグインの追加] ページのチェックリストが付属しています。
- よくある質問をお読みください。
- すべてのプラグイン開発者ガイドラインに準拠してください。
- 他の人が使用および共有できるように、プラグインを WordPress.org にアップロードする権限があることを確認してください。
- プラグイン (そのすべてのライブラリを含む)、およびその他の含まれるアセットは、GPL としてライセンスされているか、GPL と互換性があります。
- Plugin Check プラグインを使用して最終ラウンドのテストを実行し、示された問題をすべて解決します (誤検知と思われるものを除く)。

現在のバージョン: 1.1.0
最終更新日: 2024 年 8 月 28 日
プラグインチェック.1.1.0.zip
デバッグ、リンティング、テストをすべて行っても、使用を求められたプラグインは何も取得しないと思うかもしれません。ただし、初めてのプラグイン開発者は、特にチェックを実行する前にビルドからテスト ファイルを削除しない場合、解決すべき未解決の問題がいくつか残ることになるでしょう。
続行するには、 [ツール] → [プラグイン チェック]に移動します。

次に、5 つのカテゴリすべてにチェックを入れて、チェックを実行します。

その後、それらの未解決の問題を ChatGPT にフィードして解決できます。完了したら、チェックを再度実行して、結果がクリーンであることを確認します。必要なだけ何度でも実行してください。完全にクリーンなチェック (誤検知を除く) を取得したら、プラグインを WordPress 開発チームに提出できます。その後、レビューが行われるまで辛抱強く待ちます。
最終的な考え🧠
ChatGPT を使用してプラグインを構築するのは楽しくてやりがいのあるプロセスですが、決して早いプロセスではありません。きちんと動作する最終製品を作成するには、多大な労力を費やす必要があります。しかし最終的には、このプロジェクトを行うことで得られる新しいスキルをすべて理解できるでしょう。
私が学んだことをいくつか紹介します(あなたもそうかもしれません)。
- ターミナル コマンドを使用してハード ドライブ内を移動する方法を学び、プラグインの構築プロセスに関連する他のコマンドも学びました。
- 私は今、Docker と Local by Flywheel の両方にかなり慣れていますが、どちらもこの実験前には使用したことがありませんでした。
- また、これまで存在すら知らなかった多くの開発者ツールやスクリプトにも精通しています。
- 過去に Free Code Camp と Codecademy のクラスをいくつか受講したことがありますが、どちらも素晴らしかったですが、このプロジェクトを完了することで、より多くの実践的な知識を得ることができたように感じています。
- 上記に関連して、私は今、同じようなことに再び取り組むときに役立つ、ランダムなコーディング情報の塊をたくさん持っています。
- ゼロから動作するプラグインまでのギャップは、動作するプラグインと送信準備完了プラグインの間のギャップよりもはるかに小さいです。プラグインの動作バージョンは数日以内に完成しましたが、WordPress リポジトリに送信できる程度の調整をすべて行うまでにさらに数週間かかりました。
全体として、これは私が長い間行った中で最もクールなアクティビティの 1 つでした。読んでいただきありがとうございます。最初のプラグインを構築するためにこの情報のいずれかを使用することになった場合は、以下にコメントを残してください。最終結果をぜひ確認したいと思います。