はじめに: WordPressにAI機能が標準搭載される意味
2026年4月9日にリリース予定のWordPress 7.0に、AI Clientが標準搭載されます。正式名称は AI Client(開発者向けAPI)と Connectors API(設定・認証基盤)です。本記事ではこの2つをまとめて「AI Connector」と呼ぶ場合がありますが、公式ドキュメントでは上記の名称が使われています。
これはちょっとしたニュースではありません。全ウェブサイトの約43%がWordPressで動いています。そのCMSのコアに「LLMを呼び出す標準API」が入るということは、PHPからAIを使う方法にデファクトスタンダードが生まれる可能性があるということです。
自分はWordPressプラグインをいくつか開発・保守しています。これまでAI機能を組み込むには、OpenAIのPHP SDKを直接叩いたり、独自のHTTPクライアントを書いたりしていました。プラグインごとにAPIキーの管理UIを作り、プロバイダー切り替えのロジックも自前で実装する。正直、面倒でした。
WordPress 7.0のAI Clientは、この状況を大きく変える可能性があります。
なぜWordPress 7.0にAI機能が標準搭載されるのか
WordPress内部での議論の経緯
WordPress CoreへのAI機能統合は、2025年後半からMake WordPress Coreで活発に議論されてきました。きっかけは、WordPress.orgプラグインディレクトリに登録されたAI関連プラグインが2025年末時点で1,000を超えたことです。
プラグインの乱立は以下の問題を引き起こしていました。
- APIキー管理の分散: プラグインごとにAPIキーを設定する必要があり、同じOpenAIキーを5つのプラグインに重複入力するようなケースが頻発
- セキュリティリスク: 各プラグインが独自にAPIキーを保存するため、1つのプラグインの脆弱性がAPIキー漏洩につながる
- ユーザー体験の断片化: プラグインAでは動くプロンプトがプラグインBでは動かない、といった互換性の問題
Make WordPress Coreでは、「コアに認証基盤を入れるべきか、プラグインに任せるべきか」が繰り返し議論されました。最終的に、AIはWordPressエコシステムの重要な技術であり、コアがその基盤を提供すべきだという方針にまとまりました。
「Connectors API」という名前の意図
注目すべきは、この機能が「AI API」ではなく「Connectors API」と名付けられた点です。これは意図的な設計判断です。
Connectors APIは、AIプロバイダーだけでなく、将来的に決済サービス、メール配信サービス、外部ストレージなど、あらゆる外部サービスとの接続を標準化する汎用基盤として設計されています。AIはその最初のユースケースに過ぎません。
この設計思想により、WordPress 7.0のConnectors APIは単なるAI統合にとどまらない、WordPress生態系全体のインフラ進化として位置づけられています。
WordPress 7.0 AI Connector機能の概要
AI Connectorは、大きく2つの要素で構成されています。
1. Connectors API(設定基盤)
管理画面の「設定 > Connectors」に、AIプロバイダーの一元管理画面が追加されます。サイトオーナーがここでAPIキーを1回設定すれば、すべてのプラグインからそのキーを共有できます。
対応プロバイダーは以下の3つです。
- OpenAI(GPTモデル)
- Anthropic(Claudeモデル)
- Google(Geminiモデル)
各プロバイダーは公式プラグインとして提供されます。「プラグイン > 新規追加」から検索してインストールするだけです。
2. WP AI Client(開発者向けAPI)
プラグイン開発者はwp_ai_client_prompt()という単一の関数を通じてLLMを呼び出します。どのプロバイダーが裏で動いているかを意識する必要はありません。
// プラグイン開発者が書くコード
wp_ai_client_prompt('要約してください')
->generate_text();
// ↓ WordPress Core が自動的にルーティング ↓
// サイトオーナーがConnectors画面で設定したプロバイダーに送信
// OpenAI / Anthropic / Google のいずれか
この設計により、プラグイン側のコードを一切変更せずにプロバイダーを切り替えられます。
php-ai-clientパッケージの仕組み
AI Clientの内部ではwordpress/php-ai-clientというComposerパッケージが使われています。
アーキテクチャの3層構造
| レイヤー | 役割 |
|---|---|
| Settings UI | Connectors画面でのAPIキー一元管理 |
| Abstraction Layer |
php-ai-client SDKによる統一API |
| Provider Plugins | OpenAI / Anthropic / Google の公式プラグイン |
プロンプトビルダーパターン
APIはビルダーパターンを採用しています。メソッドチェーンで直感的にパラメータを組み立てられます。
wp_ai_client_prompt('プロンプト文字列')
->using_system_instruction('システム指示') // AIの振る舞いを定義
->using_temperature(0.3) // 出力のランダム性を制御
->using_model_preference('claude-sonnet-4-6', 'gpt-5.1') // 優先モデル指定
->with_file($file_path, $mime_type) // 画像等のファイル添付
->as_json_response($schema) // JSON形式で出力
->generate_text(); // テキスト生成を実行
主要メソッドは以下の通りです。
| メソッド | 用途 |
|---|---|
generate_text() |
テキスト生成 |
generate_image() |
画像生成(1枚) |
generate_images($count) |
画像生成(複数枚) |
using_model($provider, $model) |
特定モデルを強制指定 |
using_max_tokens($count) |
トークン上限設定 |
WordPress独自の慣習として、メソッド名はスネークケース、エラーはWP_Errorオブジェクトで返されます。WordPressプラグイン開発者には馴染みやすい設計です。
ハンズオン: WordPressプラグインからLLMを呼び出すコード例
実際に動くプラグインのコードを見てみましょう。投稿保存時に自動で抜粋を生成するプラグインです。
<?php
/**
* Plugin Name: AI Excerpt Generator
* Description: 投稿保存時にAIで抜粋を自動生成
* Version: 1.0.0
* Requires at least: 7.0
*/
add_action( 'save_post', 'aieg_generate_excerpt', 10, 2 );
function aieg_generate_excerpt( $post_id, $post ) {
// 自動保存・リビジョン・既存の抜粋がある場合はスキップ
if ( wp_is_post_autosave( $post_id ) ||
wp_is_post_revision( $post_id ) ||
! empty( $post->post_excerpt ) ) {
return;
}
// AI Client が利用可能か確認
if ( ! function_exists( 'wp_ai_client_prompt' ) ) {
return;
}
$content = wp_strip_all_tags( $post->post_content );
if ( empty( $content ) ) {
return;
}
// JSON Schema で出力形式を定義
$schema = array(
'type' => 'object',
'properties' => array(
'excerpt' => array(
'type' => 'string',
'description' => '1〜2文の要約。日本語で記述。',
),
),
'required' => array( 'excerpt' ),
);
// AI Client でテキスト生成
$json = wp_ai_client_prompt(
"以下の記事を1〜2文で要約してください:\n\n" . $content
)
->using_system_instruction( 'あなたはWordPress記事の要約を生成する専門家です。' )
->using_temperature( 0.3 )
->as_json_response( $schema )
->generate_text();
// エラーハンドリング(WP_Error パターン)
if ( is_wp_error( $json ) ) {
error_log( 'AI excerpt failed: ' . $json->get_error_message() );
return;
}
$result = json_decode( $json, true );
if ( isset( $result['excerpt'] ) ) {
wp_update_post( array(
'ID' => $post_id,
'post_excerpt' => sanitize_text_field( $result['excerpt'] ),
) );
}
}
ポイントをまとめます。
-
function_exists()でグレースフルデグラデーションを実現している -
as_json_response()にスキーマを渡すことで構造化された応答を得られる - エラーハンドリングはWordPress標準の
is_wp_error()を使う - プロバイダーの指定は一切不要。Connectors画面の設定が自動的に使われる
具体的ユースケース3選
1. 記事要約の自動生成
上のコード例がまさにこれです。save_postフックで記事保存時に抜粋を自動生成します。temperature を低め(0.3)に設定することで、安定した出力が得られます。
2. SEOメタディスクリプションの提案
function suggest_meta_description( $post_id ) {
$content = get_post_field( 'post_content', $post_id );
$content = wp_strip_all_tags( $content );
$schema = array(
'type' => 'object',
'properties' => array(
'description' => array(
'type' => 'string',
'description' => '120文字以内のメタディスクリプション。',
),
'keywords' => array(
'type' => 'array',
'items' => array( 'type' => 'string' ),
'description' => '主要キーワードを3〜5個。',
),
),
'required' => array( 'description', 'keywords' ),
);
return wp_ai_client_prompt(
"以下の記事のSEO用メタディスクリプションとキーワードを提案してください:\n\n"
. mb_substr( $content, 0, 3000 )
)
->using_system_instruction( 'あなたはSEOの専門家です。検索意図を意識してください。' )
->using_temperature( 0.4 )
->as_json_response( $schema )
->generate_text();
}
as_json_response()でスキーマを定義すれば、descriptionとkeywordsを分離して取得できます。LLMの出力をパースする苦労がなくなります。
3. コメントモデレーション
add_filter( 'pre_comment_approved', 'ai_moderate_comment', 10, 2 );
function ai_moderate_comment( $approved, $commentdata ) {
if ( ! function_exists( 'wp_ai_client_prompt' ) ) {
return $approved;
}
$schema = array(
'type' => 'object',
'properties' => array(
'is_spam' => array( 'type' => 'boolean' ),
'reason' => array( 'type' => 'string' ),
'toxicity' => array(
'type' => 'number',
'description' => '0〜1のスコア。0.7以上は有害。',
),
),
'required' => array( 'is_spam', 'toxicity' ),
);
$json = wp_ai_client_prompt(
"以下のコメントを評価してください:\n\n" . $commentdata['comment_content']
)
->using_system_instruction(
'コメントのスパム判定と有害性スコアリングを行ってください。'
)
->using_temperature( 0.1 )
->as_json_response( $schema )
->generate_text();
if ( is_wp_error( $json ) ) {
return $approved; // AI判定失敗時は通常フローにフォールバック
}
$result = json_decode( $json, true );
if ( ! empty( $result['is_spam'] ) || ( $result['toxicity'] ?? 0 ) >= 0.7 ) {
return 'spam';
}
return $approved;
}
temperatureを0.1まで下げて判定の一貫性を確保しています。AIが落ちてもis_wp_error()で通常フローに戻すのがポイントです。
セキュリティ・APIキー管理・コスト管理の注意点
APIキーの管理
Connectors画面に入力されたAPIキーは、WordPressのデータベースオプションとして保存されます。WooCommerceが決済キーを保存するのと同じ仕組みです。
注意点は以下の通りです。
-
wp-config.phpでの定数定義も可能。本番環境ではこちらが推奨される - APIキーがDB内に平文で保存される点に留意する。DBアクセス権限の管理が重要
- ステージング環境と本番環境でキーを分けること
アクセス制御
AIプロンプトの実行は、Connectors APIのアクセス制御の仕組みで制限される見込みです。具体的なcapability名や設定方法はRC版で検証中のため、正式版のドキュメントを確認してください。
以下は、ケイパビリティベースの制御が導入された場合の想定コード例です。
// 特定のロールにAI実行権限を付与する例(想定)
// 正式なcapability名は公式ドキュメントで確認してください
function grant_ai_to_editors() {
$editor = get_role( 'editor' );
$editor->add_cap( 'prompt_ai' );
}
add_action( 'admin_init', 'grant_ai_to_editors' );
コスト管理
標準のAI Clientにはコスト制限の仕組みがありません。自前で対策を講じる必要があります。
- リクエスト数のレートリミットをプラグイン側で実装する
-
using_max_tokens()でトークン上限を明示的に設定する -
using_temperature()を低めにして無駄なリトライを減らす - 月間API使用量を監視するダッシュボードウィジェットの作成を検討する
パフォーマンスとコスト面の実践的な考慮事項
AI ClientでLLMを呼び出す際、最も注意すべきはレイテンシとコストです。LLMのAPI呼び出しは通常1〜10秒かかります。これをページ生成のリクエストサイクル内で同期的に実行すると、サイトの応答速度が大幅に悪化します。
LLM呼び出しのレイテンシがページ生成に与える影響
wp_cronで非同期処理にする方法
save_postフック内で直接LLMを呼ぶ代わりに、wp_cronのワンタイムイベントとして登録する方法です。
// 1. 保存時にcronイベントを登録するだけ
add_action( 'save_post', 'aieg_schedule_excerpt', 10, 2 );
function aieg_schedule_excerpt( $post_id, $post ) {
if ( wp_is_post_autosave( $post_id ) ||
wp_is_post_revision( $post_id ) ||
! empty( $post->post_excerpt ) ) {
return;
}
// 既にスケジュール済みなら重複登録しない
if ( wp_next_scheduled( 'aieg_generate_excerpt_event', array( $post_id ) ) ) {
return;
}
// 即時実行のワンタイムイベントとして登録
wp_schedule_single_event( time(), 'aieg_generate_excerpt_event', array( $post_id ) );
}
// 2. cronイベントのハンドラでLLMを呼び出す
add_action( 'aieg_generate_excerpt_event', 'aieg_async_generate_excerpt' );
function aieg_async_generate_excerpt( $post_id ) {
if ( ! function_exists( 'wp_ai_client_prompt' ) ) {
return;
}
$post = get_post( $post_id );
$content = wp_strip_all_tags( $post->post_content );
if ( empty( $content ) ) {
return;
}
$schema = array(
'type' => 'object',
'properties' => array(
'excerpt' => array(
'type' => 'string',
'description' => '1〜2文の要約。日本語で記述。',
),
),
'required' => array( 'excerpt' ),
);
$json = wp_ai_client_prompt(
"以下の記事を1〜2文で要約してください:\n\n" . $content
)
->using_system_instruction( 'あなたはWordPress記事の要約を生成する専門家です。' )
->using_temperature( 0.3 )
->using_max_tokens( 200 )
->as_json_response( $schema )
->generate_text();
if ( is_wp_error( $json ) ) {
error_log( 'Async AI excerpt failed: ' . $json->get_error_message() );
return;
}
$result = json_decode( $json, true );
if ( isset( $result['excerpt'] ) ) {
wp_update_post( array(
'ID' => $post_id,
'post_excerpt' => sanitize_text_field( $result['excerpt'] ),
) );
}
}
注意点として、WordPressのwp_cronはページリクエストに依存する擬似cronです。本番環境ではDISABLE_WP_CRONをtrueにし、システムcronからwp-cron.phpを呼び出す設定を推奨します。
Transients APIでLLMの応答をキャッシュする
同じプロンプトに対するLLMの応答をTransients APIでキャッシュすれば、APIコストを大幅に削減できます。
/**
* LLMの応答をTransients APIでキャッシュするラッパー関数
*
* @param string $prompt プロンプト文字列
* @param string $system システムインストラクション
* @param int $expiration キャッシュ有効期間(秒)。デフォルト24時間
* @return string|WP_Error
*/
function cached_ai_prompt( $prompt, $system = '', $expiration = DAY_IN_SECONDS ) {
// プロンプトからキャッシュキーを生成
$cache_key = 'ai_cache_' . md5( $prompt . $system );
// キャッシュがあれば即座に返す
$cached = get_transient( $cache_key );
if ( false !== $cached ) {
return $cached;
}
if ( ! function_exists( 'wp_ai_client_prompt' ) ) {
return new WP_Error( 'ai_unavailable', 'AI Client is not available.' );
}
$builder = wp_ai_client_prompt( $prompt )
->using_temperature( 0.3 )
->using_max_tokens( 1000 );
if ( ! empty( $system ) ) {
$builder->using_system_instruction( $system );
}
$result = $builder->generate_text();
if ( is_wp_error( $result ) ) {
return $result;
}
// 成功時のみキャッシュに保存
set_transient( $cache_key, $result, $expiration );
return $result;
}
この例は考え方を示すためのものです。実運用ではモデル名、temperature、schemaもキャッシュキーに含めることを推奨します。
キャッシュ戦略のポイントは以下の通りです。
| 用途 | キャッシュ有効期間 | 理由 |
|---|---|---|
| 記事要約 | 24時間〜7日 | 記事内容が変わらなければ結果は同じ |
| SEOメタデータ | 24時間 | 検索トレンドを反映するため定期更新 |
| コメントモデレーション | キャッシュしない | 各コメントは一意なので再利用できない |
| カテゴリ提案 | 7日 | カテゴリ体系が頻繁に変わることは少ない |
API呼び出しコストの試算
1記事あたりのコストを具体的に試算します。日本語の一般的なブログ記事(2,000〜3,000文字)を前提とします。
| 処理 | 入力トークン | 出力トークン | GPT-4.1 mini コスト | Claude Sonnet コスト |
|---|---|---|---|---|
| 記事要約 | 約2,000 | 約100 | $0.001 | $0.007 |
| SEOメタデータ | 約2,000 | 約200 | $0.001 | $0.008 |
| コメント判定(1件) | 約300 | 約50 | $0.0002 | $0.001 |
| 1記事あたり合計 | 約$0.002 | 約$0.016 |
上記は2026年3月時点の参考値です。最新の料金は各公式サイトで確認してください。
月間100記事を公開するメディアサイトの場合、GPT-4.1 miniなら月額約$0.2、Claude Sonnetなら月額約$1.6です。Transients APIでキャッシュを活用すれば、この30〜50%を削減できます。
制限事項 -- 現時点のAI Clientにできないこと
WordPress 7.0のAI Clientは「まず最小限の機能を正しく提供する」方針で設計されています。以下の機能は意図的にスコープ外とされています。
| 機能 | 状況 | 補足 |
|---|---|---|
| ストリーミング出力 | 非対応 | Server-Sent Eventsによるリアルタイム表示には対応していない。チャットUIのような逐次表示が必要な場合は、プラグイン側でProvider APIを直接呼び出す必要がある |
| Function Calling / Tool Use | スコープ外 | LLMに外部ツールを実行させる仕組みは含まれていない。エージェント的な動作が必要な場合は自前で実装する |
| ベクトル検索 / RAG | 含まれない | Embeddingsの生成やベクトルDBとの連携は提供されない。RAG(Retrieval-Augmented Generation)を構築する場合は、別途Pinecone等を利用する |
| マルチターン会話 | 非サポート |
wp_ai_client_prompt()は1回のリクエスト・レスポンスで完結する。会話履歴の管理はプラグイン側の責任 |
| モデルの微調整(Fine-tuning) | 対象外 | モデルのカスタマイズやトレーニングデータのアップロードは含まれない |
これらの制限は、今後のマイナーリリースやWordPress 7.1以降で段階的に対応される可能性があります。特にストリーミング出力はMake WordPress Coreでの議論が活発で、優先度の高い次期機能と見られています。
既存のAI系WordPressプラグインとの違い
これまでもAI機能を提供するWordPressプラグインは多数ありました。Jetkpack AI、AI Engine、Bertha AIなど。これらと何が違うのかを整理します。
| 比較項目 | 既存プラグイン | WordPress 7.0 AI Client |
|---|---|---|
| APIキー管理 | プラグインごとに個別設定 | Connectors画面で一元管理 |
| プロバイダー対応 | プラグインに依存 | OpenAI / Anthropic / Google 標準対応 |
| プロバイダー切替 | コード修正が必要 | 管理画面から切替。コード変更不要 |
| API互換性 | 各プラグイン独自のAPI |
wp_ai_client_prompt() に統一 |
| プラグイン間連携 | 連携なし。各プラグインが独自にAPI呼び出し | 全プラグインが共通の認証情報を共有 |
最大の違いは「インフラとしての提供」です。既存プラグインはAI機能そのものを提供していました。AI Clientは機能ではなく基盤を提供します。プラグイン開発者は認証やプロバイダー切り替えの実装から解放され、本来のビジネスロジックに集中できます。
既存プラグインからの移行パス
既にAI系プラグインを使っている場合、WordPress 7.0のAI Clientにどう移行すればよいかを具体的に解説します。
AI Engine / Jetpack AIからの移行
AI EngineやJetpack AIを「コンテンツ生成」用途で使っている場合、管理画面での利用は引き続きそのままで問題ありません。これらのプラグインは独自のUI(エディター統合やチャットボット)を提供しており、AI Clientが直接置き換えるものではありません。
ただし、テーマやカスタムプラグインからAI EngineのPHP APIを呼び出している場合は、AI Clientへの書き換えを検討すべきです。
// AI Engine の場合(移行前)
$ai = new Meow_MWAI_Core();
$query = new Meow_MWAI_Query_Text( '記事を要約してください' );
$query->set_model( 'gpt-4.1-mini' );
$query->set_max_tokens( 200 );
$reply = $ai->run_query( $query );
$text = $reply->result;
// WordPress 7.0 AI Client(移行後)
$text = wp_ai_client_prompt( '記事を要約してください' )
->using_max_tokens( 200 )
->generate_text();
移行のメリットは以下の通りです。
- AI Engineプラグインへの依存がなくなる(AI Engineが更新されなくなっても動作する)
- APIキーをConnectors画面で一元管理できる
- プロバイダーの切り替えがコード変更なしで可能になる
独自にOpenAI PHP SDKを使っていた場合のBefore/After
OpenAIのPHP SDKを直接使ってカスタム実装していたケースは、最も移行メリットが大きいパターンです。
// === Before: OpenAI PHP SDK を直接使用 ===
use OpenAI;
function generate_summary_old( $content ) {
// APIキーの管理を自前で実装する必要がある
$api_key = get_option( 'my_plugin_openai_key' );
if ( empty( $api_key ) ) {
return new WP_Error( 'no_key', 'APIキーが設定されていません。' );
}
$client = OpenAI::client( $api_key );
try {
$response = $client->chat()->create( [
'model' => 'gpt-4.1-mini',
'messages' => [
[
'role' => 'system',
'content' => 'あなたは記事要約の専門家です。',
],
[
'role' => 'user',
'content' => "以下を要約:\n\n" . $content,
],
],
'max_tokens' => 200,
'temperature' => 0.3,
] );
return $response->choices[0]->message->content;
} catch ( \Exception $e ) {
return new WP_Error( 'api_error', $e->getMessage() );
}
}
// === After: WordPress 7.0 AI Client ===
function generate_summary_new( $content ) {
if ( ! function_exists( 'wp_ai_client_prompt' ) ) {
return new WP_Error( 'ai_unavailable', 'AI Client is not available.' );
}
return wp_ai_client_prompt( "以下を要約:\n\n" . $content )
->using_system_instruction( 'あなたは記事要約の専門家です。' )
->using_max_tokens( 200 )
->using_temperature( 0.3 )
->generate_text();
}
変更点を整理します。
| 項目 | Before(自前実装) | After(AI Client) |
|---|---|---|
| コード量 | 約25行 | 約10行 |
| APIキー管理 |
get_option()で自前取得 |
Connectors画面で一元管理(コード不要) |
| エラーハンドリング | try-catchで例外処理 |
is_wp_error()で統一 |
| プロバイダー切替 | コード書き換え必須 | 管理画面から切替可能 |
| Composerの依存 |
openai-php/clientが必要 |
不要(コア内蔵) |
| 設定画面の実装 | 自前でUI作成が必要 | 不要 |
移行時の注意点
-
function_exists( 'wp_ai_client_prompt' )によるフォールバックを必ず入れること。WordPress 6.x以下との互換性を維持するため - 移行前のプラグイン独自の設定画面は、WordPress 7.0以上では「Connectors画面をご利用ください」と案内するUIに切り替えるのが望ましい
-
using_model()で特定モデルを強制指定すると、プロバイダー切り替えの恩恵が受けられなくなる。可能な限りusing_model_preference()を使い、複数候補を指定する
WordPress 7.0のリリーススケジュールと準備
リリースタイムライン
- RC1(2026年3月24日): リリース済み。AI Client / Connectors APIの全機能が含まれる
- RC2(2026年3月26日): バグ修正のみ。新機能の追加はない
- RC3(2026年4月2日予定): 必要に応じたバグ修正
- GA(2026年4月9日): WordCamp Asia Contributor Dayに合わせた正式リリース
今すぐRC版で試すための手順
本番環境では絶対にRC版を使わないでください。ローカル環境またはステージング環境で検証します。
# 1. wp-envでRC版のローカル環境を構築する(推奨)
npx @wordpress/env start --wp=7.0-RC3
# 2. または、既存の開発環境にRC版を手動インストールする
wp core update --version=7.0-RC3 --force
# 3. AIプロバイダープラグインをインストール(例: OpenAI)
wp plugin install wordpress-openai-provider --activate
# 4. APIキーを設定
wp option update connectors_openai_api_key "sk-your-api-key-here"
# 5. WP-CLIでAI Clientの動作確認
wp eval 'var_dump( function_exists( "wp_ai_client_prompt" ) );'
# => bool(true)
テーマ・プラグイン開発者が準備しておくべきこと
| 優先度 | 対応項目 | 詳細 |
|---|---|---|
| 高 | RC版での動作検証 | 既存のプラグイン/テーマがWordPress 7.0で正常に動作するか確認する |
| 高 |
function_exists()ガード |
AI Clientを使うコードには必ず存在チェックを入れ、6.x以下でもエラーにならないようにする |
| 中 | 独自AI実装の移行計画 | OpenAI SDKを直接使っている箇所をリストアップし、移行スケジュールを立てる |
| 中 | アクセス制御の確認 | AI機能を使うユーザーロールに適切な権限が付与されているか、正式版のドキュメントで確認する |
| 低 | 設定画面の整理 | プラグイン独自のAPIキー設定画面がある場合、Connectors画面への誘導UIを検討する |
まとめ: PHP開発者にとっての転換点
WordPress 7.0のAI Clientは、PHP開発者がLLMを使う方法に標準的な選択肢を提供します。
-
プラグイン開発者は
wp_ai_client_prompt()だけ覚えればよい - サイトオーナーはConnectors画面でAPIキーを1回設定するだけ
- プロバイダーロックインがなくなる。OpenAIからClaudeへの乗り換えもコード変更ゼロ
RC1は2026年3月24日にリリース済み。正式版は4月9日のWordCamp Asia Contributor Dayに合わせて公開される予定です。
既にWordPressプラグインを開発しているなら、今のうちにRC版で動作検証しておくことを推奨します。独自のAPI呼び出しコードをwp_ai_client_prompt()に置き換える作業は、早めに着手したほうがよいでしょう。
PHPからLLMを呼ぶ「当たり前の方法」が、WordPress 7.0で一つの形になろうとしています。
参考リンク
- Introducing the AI Client in WordPress 7.0 – Make WordPress Core
- Introducing the Connectors API in WordPress 7.0 – Make WordPress Core
- WordPress/wp-ai-client – GitHub
- How to Use the WordPress AI Client – Rich Tabor
- WordPress 7.0 AI Connector Tutorial – byteiota
- What's new for developers? (March 2026)