【ChatGPT API × WordPress】AIが自動で記事を要約する仕組みをつくってみた
この記事のAI要約
企業サイトやオウンドメディアでは、ChatGPTなどの生成AIアシスタント向け最適化が急務となっています。AI検索では要約が上位表示され、ユーザー行動も変化しているため、記事のAI可読性を高める必要があります。そこで、OpenAIのChatGPT APIを使い、WordPressの記事更新時に自動で高品質な要約文を生成し、構造化データとして補完する仕組みを開発しました。これにより、運用担当者の手間を減らしながら、AI検索エンジンに最適化されたメタ情報を効率的に生成できます。コンテンツ運用にAIを組み込みたい企業や運用担当者にとって有用な技術です。
gpt-4.1-miniによる自動要約
いま、企業サイトやオウンドメディアの運用で大きな課題になっているのが、AIO対策。すなわちChatGPT・Perplexity・GeminiなどのAI検索(生成AIアシスタント)向け最適化です。
AI要約が検索より上位に表示されるようになり、ユーザー行動も検索→クリックから「AIから直接答えをもらう」に変化しつつあります。
このため、従来のSEO対策だけでなく、いかにしてAI可読性を高めるかが急務となっています。
そこで今回は、OpenAIのChatGPT API を使って、WordPressの記事更新時にAIが参照しやすい要約文の自動生成と構造化データの補完機能を作ってみました。
実際に使用してみると──
「人間の代わりにAIが本文を理解し、自然で読みやすい要約を生成する」機能ができましたので、今回はその方法をご紹介します。
INDEX
機能設計
まず機能の設計ですが編集担当からは、
- 記事の作成時に自動でAPIリクエストを実行したい。
- 記事の作成中には動作させずに、記事を書き終え校正も完了した後に1回だけ実行したい。
- 記事の追記や公開後の修正があった場合も考慮して、明示的に要約を上書きできる仕組みも欲しい。
- APIの利用にかかる1記事あたりのコストも把握したい。
という要望がありましたので、下記のような形で機能を設計しました。
ポイントとしてはフラグを敢えて2つ用意し、「明示的に要約を上書きできる仕組み」にも対応できるようにしています。
この処理と同時にコスト管理にも対応できるよう、フィールドを作成していきます。
カスタムフィールドの作成
カスタムフィールドはACFを使用して作成しました。
実際に作成したカスタムフィールドがこちらです。
各フラグは真偽値(bool)、要約文はAI可読性の高いと言われている200字〜350字で登録できるようテキストエリア形式、コスト管理は数値型のフィールドにしています。
コスト計算については後述しますが、使用するAIモデルによって異なるのと$ベース(USD)の料金テーブルになっており、為替レートを都度管理するのも面倒なため、ドルのまま登録する形にしておきました。
ChatGPT APIをWordPressに組み込む
使用したのは OpenAI のResponses API(最新のChatGPT API)です。
使用するAIモデルやエンドポイント、APIキーは使いまわしができるよう定数化しておくと便利です。
// 実運用では if (!defined(...)) で重複定義を防ぐのがおすすめです。
define( 'C_INTACTIS_AI_OPENAI_MODEL', 'gpt-4.1-mini' ); // 例: 'gpt-5-mini' や 'gpt-5' に変更可
define( 'C_INTACTIS_AI_OPENAI_ENDPOINT', 'https://api.openai.com/v1/responses' );
define( 'C_INTACTIS_AI_OPENAI_APIKEY', 'sk-proj-XXXX' ); // 実際は環境変数で管理推奨
こんな感じですね。
WordPressでは記事更新をトリガーに、記事本文をAPIに送信し、返ってきた要約をACF(Advanced Custom Fields)のフィールドに自動保存します。
add_action('acf/save_post', function($post_id) {
$flag = get_field('ai_summarize', $post_id);
if (empty($flag)) return;
$text = strip_tags(get_post($post_id)->post_content);
$summary = intactis_ai_summary_call_openai($text);
update_field('ai_summary', $summary, $post_id);
});
プロンプトは最も試行錯誤したところですが、試した中で最も要約文の品質が安定した以下の内容にしてみました。
以下の日本語記事本文を、ウェブ記事の冒頭に置ける要約として作成してください。
・200〜350文字
・ラベル(例: 結論: 理由:)は一切使わない
・主張→理由→読者メリット→想定読者 の順に自然な文で
・誇張禁止/具体例は1つまで
・日本語/自然な位置で改行してよい
・最後は必ず句点(。)で終える
【タイトル】
{$title}
【本文】
{$text}
プロンプトについては実際の使用状況を見ながら少しずつ改善していければと思っています。
モデル選定とコスト
AIモデルには最初、gpt-5-mini を使ってみましたが、文章の自然さや情報保持の精度では gpt-4.1-mini が最もバランスが良いと感じました。
実際、同じ記事を要約した場合のトークン使用量とコストは以下の通りです。
| モデル | 出力品質 | 平均トークン | コスト感 |
|---|---|---|---|
| gpt-5-mini | やや簡略・時々切れる | 約1,200 | ◎安価 |
| gpt-4.1-mini | 自然・情報保持◎ | 約1,400 | ○コスパ良し |
| gpt-5 | やや過剰 | 約1,800 | ✗やや高コスト |
意外なことに、gpt-5-miniでは要約の品質が安定せず、何度もやり直しが発生していたのですが、gpt-4.1-miniに切り替えたら安定して意図通りの要約が出力されるようになりました。
詳しい違いはわかりませんが、API利用料金の計算は「gpt-4.1-mini」を使用しましたので、以下の関数で計算しています。
/**
* コスト算出(USD)
*/
function intactis_ai_summary_calc_cost_usd( $model, $input_tokens, $output_tokens ) {
$pricing = apply_filters('intactis_ai_model_pricing', [
'input_per_1k' => 0.00040, // $0.40 / 1M tokens
'output_per_1k' => 0.00160, // $1.60 / 1M tokens
], $model);
$in_cost = ($input_tokens / 1000) * floatval($pricing['input_per_1k']);
$out_cost = ($output_tokens / 1000) * floatval($pricing['output_per_1k']);
return round($in_cost + $out_cost, 6);
}
こうしてみるとかなり安価な感じがしますが、実際にどの程度のコストになるのか楽しみですね。
実際に使用してみると…
この記事で実行してみたところ、下記のように意図通りカスタムフィールドに出力内容が保存されました。
記事全体の文字数が約4,000文字(入力:2,711トークン)、要約文が275文字(出力184トークン)で、費用は$0.001379(USD)。
日本円では0.21円($1=153.4円で計算)くらいですね。
う〜ん、安い!(※個人の感想です)
SEOとAIO(AI最適化)の視点から見る効果
AIが生成する要約文は、単なる「短縮版の本文」ではなく、AI検索エンジン(AIO)に最適化されたメタ情報としても機能します。
特にGoogleやPerplexityなどのAI検索では、ページの要約やコンテキスト情報を**構造化データ(JSON-LD)から読み取ります。
そこで、要約結果を次のような形式でページヘッダーに出力する機能も追加してみました。
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"abstract": "AIが自動で生成した記事要約をここに格納",
"inLanguage": "ja",
"publisher": {
"@type": "Organization",
"name": "INTACTIS Inc."
}
}
これにより、AIに読み取られやすく、文脈理解されやすいページ構造が実現します。
単なるSEO(Search Engine Optimization)から、AIO(AI Interpretation Optimization)へ──
これはこれからのWeb運用において、確実に重要なテーマになるはずです。
運用の工夫 ー 課金制御・再生成・上書き防止
AIによる自動処理は便利ですが、制御がないとコストが積み上がるリスクもあります。
そこで以下のような安全策を入れました。
- ACFのチェックボックスで「AI要約を生成する/しない」を明示的に選択
- すでに要約がある場合は上書きしない(ただし「再生成」トグルで手動更新も可能)
- トークン使用量とコスト(USD)を記事ごとに記録
これにより、1記事ごとの生成履歴やAPI利用量を把握でき、企業向けの安全なAI連携設計として成立しています。
「AIが整えるWebサイト」 の第一歩
この自動要約機能を導入したことで、運用担当者がメタディスクリプションや要約文を考える時間はほぼゼロになりました。
また、全記事に統一された構成・トーンの要約が付くため、AIが理解しやすい情報構造が自然に整っていきます。
つまり、AIに「見つけてもらえる」構造ができたということですね。
人間がSEOを考えるのではなく、AIがAIOを助けてくれる時代に向けた土台が完成しました。
文中のスクリーンショットはわかりやすいようにクラシックエディター利用の画面で取得していますが、ブロックエディター(Gutenberg)でも問題なく動作します。
AIとWordPressが融合する未来
AIとWordPressを組み合わせると、「書く」「要約する」「最適化する」という3つの工程が自動化されます。
企業のコンテンツ運用は、これから確実に「AIをどう組み込むか」の設計力で差がつくでしょう。
次は記事そのものもAIで生成する機能にも調整してみたいと思います。
コンテンツ運用にAI生成を導入をご検討の方は是非お気軽にお問い合わせください。