AIが台頭する今日、開発者WordPressプラグインを構築または改良するのにAIを活用しない手はありません。今回は、人気の次世代AIコードエディタであるCursorを使用して、WordPressプラグインを構築する方法をご紹介します。

なお、AIは信頼できるアシスタントにはなりますが、私たち人間の専門知識を完全に代替するものではありません。出力を確認し、バグをキャッチして、パフォーマンスを最適化しながら、コードが安全でスケーラブルであることは確認することは依然として重要になります。

とはいえ、今は自然言語プログラミングの時代。1回のプロンプトでCMS全体を立ち上げたり、完全に機能するページビルダーを取得したりできることは期待できませんが、そのプロセスの大部分をAIが高速化してくれます。ローコード開発派にとっても、熟練した開発者にとっても、プラグインの構築にAIは一役買ってくれます。

AIコーディングツールの概要

オンラインツールであっても、インストールして使用するソフトウェアであっても、多くのコード生成AIツールには以下のような共通点があります。

  • 大量のデータを取り込み、コードリポジトリでトレーニング済み
  • 時間を削減するオートコンプリートとインテリジェントなコード提案
  • 多数のプログラミング言語に精通
  • コンテキストを認識し、コードベースの構造を理解
  • 自然言語によるプロンプトを解釈し、小さなタイプミスも検出
  • 異なる大規模言語モデル(LLM)を切り替えられるものもあり
  • プラグインシステムや拡張機能をサポート
  • デバッグやリファクタリング用のツールを搭載

AIコーディング分野の代表的なツールには、以下が挙げられます。

  1. ChatGPT:最も名の知れた生成AI。設定不要で、コードの生成、説明、質問への回答を行う。
  2. GitHub Copilot:GitHubとOpenAIによって構築されたコーディングアシスタント。好きなIDEに直接統合し、入力するとリアルタイムでコードを提案してくれる(AIとペアプログラミングするような形)。
  3. Grok:ChatGPTやClaudeと似た機能を持つが、一癖あるxAIによるXユーザー向けツール。
  4. Gemini:Googleの万能AIモデルでChatGPTに類似。
  5. Windsurf:開発者の要件を先読みすることに特化したIDE。

CursorのAIコードエディタを使用するにあたって

プラグイン構築の手順をご紹介するにあたって、開発者の間で人気上昇中のCursor AIを使用します。Cursor AIは、VSCode IDEのフォークであるため、見た目も使い勝手も親しみやすいのが特徴です。柔軟性にも優れ、VSCodeの設定や環境設定をCursor AIにインポートすることができます。

フル機能のオープンソースIDEであることから拡張機能も豊富で、コードドキュメントにアクセスする方法も多数あります。

Cursorのチャットには、異なるタスクに最適化された複数のモードがあります。

Cursorのチャットモード
Cursorのチャットモード

モードピッカー(Cmd+.)またはキーボードショートカットで切り替え可能です。

  • Ask Mode(質問モード):簡単な質問、説明、機能計画に最適。例えば、「このコードベースではどのプログラミング言語が使われていますか?」と入力すると、開いているファイルに基づいてコンテキストに沿った回答が表示される。Cmd+L(Mac)またはCtrl+L(Windows、Linux)でアクセス可能。
  • Agent Mode(エージェントモード):コードベース全体を推論させ、ファイルの生成、新機能の実装、リファクタリングなど、より広範な変更を行いたい場合に最適。例えば、「/plugins/contentwriterにある内容に基づいて、ドキュメントファイルを作成してください」などと入力できる。Cmd+I(Mac)またはCtrl+I(Windows、Linux)でアクセス可能。
  • Manual Mode(手動モード):よりコントロールが必要で、特定のファイルやスニペットだけをAIに操作させたい場合に最適。例えば、「../docsにあるコンポーネントを使ってtheme.jsonをリファクタリングしてください」のように指示できる。このモードは直接編集を開始するか、コマンドパレットから編集を開始すると自動的に有効になる。

プラグイン作成のワークフロー

ChatGPTをコードの記述だけに使用しているなら、AIのコードアシスト機能を最大限に活用できていない可能性があります。一般的なAIツールでもWordPressプラグインを立ち上げることはできますが、コードのテストやデバッグにはおそらく最適とは言えません。

そこで出番になるのが、CursorをはじめとするAIツールです。AIとフル機能のIDEを組み合わせて、より構造化された開発者向けのワークフローを確立することができます。

AIコーディングツールを使い始める方法としては、すでに慣れ親しんでいるツールでプロンプトを出すのがおすすめです。また、いきなり複雑な機能や大規模なプラグイン開発に着手するのではなく、小規模かつ十分に計画されたプロジェクトから始めましょう。また、漠然とした1回のプロンプトでAIがプラグイン全体を構築してくれることは期待しないでください。すべての開発タスクに言えることですが、まずは目的をわかりやすく書き出すことから始めましょう。

今回の例では、WordPressに新たなユーザー役割を登録する「Custom Writer」というプラグインを作成していきます。この役割は投稿の作成と編集はできますが、削除や他の投稿タイプへのアクセスはできません。

ステップ1. プラグインディレクトリを開く

Cursorを起動し、「File」>「Open Folder」で/wp-content/pluginsディレクトリに移動します。

ステップ 2. チャットセッションを開始する

Cmd + Shift + L(WindowsではCtrl + Shift + L)を押してチャットを起動します。

Cmd + LまたはCtrl + Lで「Ask Mode」に切り替え、計画用のプロンプトから始めます。このモードは、いきなりコードを生成するのではなく、アイデアを推論してくれます。

メインのプロンプト入力の上にある「Add Context」フィールドにプロジェクトの目的を細かく記述することができます。

今回は以下のように入力します。

@WordPressは、CursorにWordPressの公式ドキュメントを参照するように指示するもので、プラグインがベストプラクティスに従うことを簡単に保証することができます。

CursorのAsk Mode
CursorのAsk Mode

ステップ3. マークダウンの指示を確認する

Send」を押すと、フックの設定からアンインストール時の後始末まで、以下を含む詳細なmarkdown文書が返されます。

  • プラグインヘッダーの詳細(名前、バージョン、ライセンス)
  • コード構造(カスタムプラグインフォルダ内の単一の.phpファイル)
  • add_role()を使用した役割の作成
  • 特定の機能(edit_postspublish_postsなど)
  • 有効化、無効化、アンインストール用のフック
  • セキュリティ、パフォーマンス、テストに関する推奨事項

先に進む前に手順を微調整することも可能ですが、このまま次の手順に移ります。

ステップ4. Agent Modeに切り替えてプラグインをビルドする

続いて、実際にコードを生成します。

Cmd + Shift + I(またはCtrl + Shift + I)で、「Agent Mode」に切り替えます。これでコードベース全体で作業し、マルチステップタスクを実行するようになります。

Enterキーを押すと、「Run Command」ボタンが出現します。

Cursorの「Run Command」ボタン
Cursorの「Run Command」ボタン

Run Command」をクリックすると、プラグインが生成されます。作成される新規フォルダ(例:custom-writer-role)の中に.phpファイルが1つ格納されています。

Cursorによって生成されたフォルダとコードファイル
Cursorによって生成されたフォルダとコードファイル

ステップ 5. ファイルの確認と承認

Cursorが生成したファイルを開いて、プラグインの作者を更新したり、インラインコメントを修正したりすることができます。

問題がなければ、「Accept File」をクリックしてください(クリック後もファイルはいつでも編集可能)。これでファイルがコードベースの一部になります。

ステップ6. WordPressでプラグインを有効化する

WordPress管理画面にログインし、「プラグイン」ページでプラグインを見つけて有効化します。

Cursorが作成したWordPressプラグインを有効化
Cursorが作成したWordPressプラグインを有効化

すべてが適切に生成されていれば、完了のメッセージが表示されプラグインが有効になります。

ステップ 7.  ユーザー役割のテスト

新規ユーザーを作成し、Custom Writerの役割を割り当ててみます。テスト結果は以下のようになり、正常にプラグインが動作していることがわかりました。

  • 新規ユーザー役割が正常に生成
  • 新規投稿作成の権限が付与
  • 投稿の編集と閲覧は可能だが削除はできない

ステップ8. UIの問題を特定して修正する

例えば、投稿一覧を確認すると「クイック編集」が表示されるのがわかります。投稿を削除することはできませんが、このリンクが表示されるのは紛らわしいかもしれません。

Debugging the plugin
プラグインのデバッグ

そこでCursorに戻り、「クイック編集」を削除するヘルプを求めるプロンプトを出します。

実際に「クイック編集」のリンクを削除するために様々なアプローチを試すよう複数のプロンプトを実行したところ、「user_switch」という記述が出てきたため、Switch User Roleプラグインとの競合の可能性が浮上しました(テストサイトで使用していたプラグインは、自作のプラグインとこのプラグインのみ)。

この懸念を伝えたところ、実際に競合が発生する可能性があるという回答が返ってきたため、さらにプロンプトを重ねて別の方法を試行することに。この過程で、新規ユーザーがログインできないという問題が発生しました。調査したところ、ログインにはより上位の権限が必要であることが判明しました。

また別の方法では、「クイック編集」が削除されたものの、「編集」まで削除されてしまうという問題が生じました。

状況を整理するため「現在の状態を要約してほしい」という指示を出し、理解の擦り合わせを行い、「〜についてどう思うか」などの助言を尋ね、最終的には、以下のようにCursorがすべての問題を解決する方法と変更点の要約も提示してくれました。

ステップ9. 追加の動作を監視する

テストを行う中で、以下のような点にも気がつきました。

  • 特に指示を出していないにも関わらず、メディアライブラリにアクセスできない(これは明示的に機能をリクエストしない限り、AIがそれを含めない可能性があるというリマインダーになる)。
  • アプローチの概要には「投稿と固定ページの両方に適用する」とあった、実際にはプラグインが正しく固定ページへのアクセスをブロックしている。Cursorの説明はやや大袈裟だったが動作自体は正しく機能している。

ステップ10. テストと反復を繰り返す

ここからさらにプラグインをインストールし、互換性をテストして、必要に応じてユーザー役割を改良していくことができます。何かが壊れたり、期待通りに動作しなかったりした場合は、Cursorに戻りフォローアップのプロンプトを出します。

このように追加を質問を行ったり、指示を言い換えたり、意見や助言を尋ねたりといったことは、Cursorを使用する中でよく行うことになります。実はここがCursorの真価を発揮するところで、やり取りのフィードバックループが速いため、繰り返すたびに洗練された提案を受けることができます。

AIツールへの完全な依存は要注意

AIツールにプラグインを生成できるからといって、必ずしも利用すべきとは限りません。

プラグインを生成する前に、プラグインの目的、必要な機能、潜在的な依存関係を時間をかけて考えましょう。例えば、プラグインがWooCommerceのような主要なプラグインと競合する可能性がある場合は、その点をプロンプトに含めてください。

また、コンテキストが詳細であればあるほど、より良い結果が得られます。具体的かつ明確に目的を書きましょう。

最後に、AIは画期的なツールですが、プラグイン開発に伴う責任は担ってくれません。自分でコーディングを行う際に考慮すべき点は、依然として念頭においてください。

  • セキュリティ─入力をサニタイズし、機能をチェックして、ベストプラクティスに従う
  • パフォーマンス─冗長なクエリを避け、ロジックを簡潔に保つ
  • アクセシビリティ─ユーザーの役割、UI要素、包括的なインタラクションを考慮
  • テスト─エッジケースを試し、プラグインを組み合わせて機能を検証
  • デプロイメント─バージョン管理、ロールバック、スケーラビリティの準備
  • リファクタリング─定期的にコードを見直す

まとめ

AIを使ったコード生成の状況は、日々急速に変化しており、これは様々なサービスやツールが乱立していた検索エンジン登場初期の頃を彷彿とさせます。最終的に生き残ったのはほんの一握りのサービスのみ。AIコーディングツールの分野でも同じことが起こるかも知れませんが、オープンソースの存在が別の流れを作る可能性もあります。

同じプロンプトを使って複数のAIツールを試し、その結果を比較してみてください。状況が進化し続ける中で、使い慣れたアプリケーションを乗り換える必要が出てくる可能性もあります。

いずれにせよ、AIツールの進化に伴い、開発ワークフローも改善されていくはずです。

開発者思いのKinstaのWordPress専用マネージドクラウドサーバーは、自信を持って構築、テスト、およびローンチするために必要な速度、コントロール、およびツールを提供します。DevKinstaでローカルに作業することも、ステージング環境にデプロイすることも可能です。

WordPress用プランの詳細を確認して、Kinstaをぜひ一度お試しください。

Bud Kraus

Bud Kraus has been working with WordPress as an in-class and online instructor, site developer, and content creator since 2009. He has produced instructional videos and written many articles for WordPress businesses.