WordPressでブログを運営していると、「記事作成に時間がかかる」「定期的に投稿したいが、毎回管理画面を開くのが面倒」と感じることがあります。
そこで注目されているのが、AIで記事を生成し、WordPressへ自動投稿する仕組みです。
ただし、AIに記事を書かせて無条件に公開するだけでは、内容の重複や誤情報、検索品質の低下につながる可能性があります。
重要なのは、AIによる下書き作成、内容確認、予約投稿までを安全に自動化することです。
この記事では、WordPress AI自動投稿の自作プラグインについて、開発手順、API設定、記事の自動公開方法、失敗しやすいポイントまで解説します。
WordPress AI自動投稿プラグインでできること
自作プラグインを使うと、次のような処理をWordPress内で実行できます。
- AIに記事タイトルや本文を生成させる
- 指定したキーワードから記事を作成する
- 生成した記事をWordPressに登録する
- 下書き、予約投稿、公開を切り替える
- アイキャッチ画像を設定する
- カテゴリーやタグを自動付与する
- WordPressの予約投稿機能と連携する
- WP-Cronで一定間隔ごとに自動実行する
市販ツールを利用する方法もありますが、自作プラグインなら、プロンプトや投稿ルールを自由に変更できます。
特定の業務フローに合わせたい場合や、外部サービスに記事データを預けたくない場合にも適しています。
自動投稿の前に知っておきたい注意点
AI自動投稿は便利ですが、完全放置で大量の記事を公開する運用はおすすめできません。
AIが生成する文章には、次のような問題が含まれることがあります。
- 事実と異なる情報が混ざる
- 古い情報を最新情報として説明する
- 競合サイトと似た内容になる
- 不自然な表現や誤字が残る
- 引用元や根拠が不足する
- 医療、法律、金融などで誤解を招く
特にSEOでは、文字数だけを増やした記事よりも、読者の疑問に具体的に答え、独自の経験や検証を含むコンテンツが評価されやすい傾向があります。
そのため、最初は「AIが自動生成した記事を下書き保存する」設定から始め、内容を確認してから公開する方法が安全です。
品質が安定してから予約投稿や自動公開に切り替えましょう。
自作プラグインの基本構成
WordPress AI自動投稿プラグインは、主に以下の仕組みで構成します。
必要な機能
- 管理画面に設定ページを追加する
- AIサービスのAPIキーを保存する
- キーワードやプロンプトを指定する
- APIへリクエストを送信する
- 生成された文章を取得する
wp_insert_post()で記事を登録する- WP-Cronで定期実行する
AIサービスには複数の選択肢がありますが、利用するサービスによってAPIのURL、認証方法、モデル名、料金が異なります。
APIキーはプラグインのコードに直接書かず、管理画面や環境変数で安全に管理してください。
プラグインを作成する開発手順
プラグインファイルを作る
まず、wp-content/plugins/の中に専用フォルダを作成します。
text
wp-content/
└── plugins/
└── my-ai-auto-post/
└── my-ai-auto-post.php
my-ai-auto-post.phpには、次のようなプラグイン情報を記述します。
“`php
<?php
/*
* Plugin Name: My AI Auto Post
* Description: AIで記事を生成してWordPressへ登録するプラグイン
* Version: 1.0.0
/
if ( ! defined( ‘ABSPATH’ ) ) {
exit;
}
“`
ファイルを作成したら、WordPress管理画面の「プラグイン」から有効化します。
管理画面に設定項目を追加する
APIキーや投稿ステータスを管理画面から変更できるようにします。
設定項目としては、次の内容があると便利です。
- AI APIキー
- 使用するモデル
- 記事生成用のプロンプト
- 投稿カテゴリー
- 投稿ステータス
- 1回あたりの生成数
- 自動投稿の実行間隔
APIキーをデータベースに保存する場合は、update_option()やget_option()を利用します。
ただし、管理画面にはAPIキーをそのまま表示せず、権限チェックと入力値のサニタイズを行うことが大切です。
AI APIへリクエストを送る
WordPressから外部APIへ接続する場合は、PHPのwp_remote_post()を使います。
php
$response = wp_remote_post(
'https://api.example.com/v1/generate',
array(
'headers' => array(
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $api_key,
),
'body' => wp_json_encode(
array(
'model' => 'example-model',
'prompt' => $prompt,
)
),
'timeout' => 60,
)
);
実際のAPIに接続する際は、サービスの公式ドキュメントに合わせてURLやパラメータを変更します。
また、通信エラーや利用上限にも備えましょう。
“`php
if ( is_wp_error( $response ) ) {
error_log( ‘AI API error: ‘ . $response->get_error_message() );
return;
}
$body = json_decode( wp_remote_retrieve_body( $response ), true );
“`
APIエラーを無視すると、空の記事が投稿されたり、同じ記事が何度も登録されたりする原因になります。
AIで生成した記事をWordPressへ登録する方法
AIから取得したタイトルと本文をWordPressの記事として登録するには、wp_insert_post()を使います。
“`php
$post_data = array(
‘post_title’ => sanitize_text_field( $title ),
‘post_content’ => wp_kses_post( $content ),
‘post_status’ => ‘draft’,
‘post_author’ => get_current_user_id(),
‘post_type’ => ‘post’,
);
$post_id = wp_insert_post( $post_data, true );
if ( is_wp_error( $post_id ) ) {
error_log( ‘Post error: ‘ . $post_id->get_error_message() );
}
“`
最初からpublishにするのではなく、draftで保存するのが基本です。
管理者が内容をチェックできるため、誤情報や不自然な文章の公開を防げます。
確認が不要な定型記事だけを自動公開したい場合は、post_statusをpublishに変更します。
ただし、公開対象は十分に検証したカテゴリーに限定してください。
WP-Cronで記事を定期的に自動生成する
WordPressには、指定した処理を定期的に実行するWP-Cronがあります。
たとえば、1日1回AI記事を作成する設定にできます。
“`php
register_activation_hook( FILE, ‘my_ai_schedule’ );
function my_ai_schedule() {
if ( ! wp_next_scheduled( ‘my_ai_generate_event’ ) ) {
wp_schedule_event( time(), ‘daily’, ‘my_ai_generate_event’ );
}
}
add_action( ‘my_ai_generate_event’, ‘my_ai_generate_post’ );
function my_ai_generate_post() {
// キーワード取得
// AI APIへ送信
// 生成結果を検証
// WordPressへ下書き保存
}
“`
プラグイン停止時には、登録したイベントを解除します。
“`php
register_deactivation_hook( FILE, ‘my_ai_unschedule’ );
function my_ai_unschedule() {
$timestamp = wp_next_scheduled( ‘my_ai_generate_event’ );
if ( $timestamp ) {
wp_unschedule_event( $timestamp, 'my_ai_generate_event' );
}
}
“`
WP-Cronは、厳密な時刻に実行される仕組みではありません。
アクセスが少ないサイトでは処理が遅れることがあるため、確実な実行が必要ならサーバーのcronとwp-cron.phpを組み合わせる方法もあります。
自動公開までのおすすめワークフロー
安全性を重視する場合
次の流れがおすすめです。
- キーワードを登録する
- AIが記事を生成する
- WordPressに下書き保存する
- タイトルと見出しを確認する
- 事実関係やリンクを確認する
- 独自情報を追加する
- 予約投稿または公開する
この方法なら、AIを執筆補助として活用しながら、最終的な品質を人が担保できます。
完全自動化したい場合
完全自動化する場合は、公開前に最低限のチェック処理を入れましょう。
- 本文が一定文字数以上あるか
- タイトルが空ではないか
- 同じタイトルの記事が存在しないか
- 禁止ワードが含まれていないか
- 外部リンクが適切か
- APIの返答が正常か
- 1日の投稿数を超えていないか
重複チェックには、タイトル検索やキーワードを管理する独自テーブルを利用できます。
投稿数の上限を設定しておけば、APIの誤作動による大量投稿も防止できます。
SEOに強いAI自動投稿にする設定
AIに「SEO記事を書いて」とだけ指示しても、読者の検索意図に合う記事になるとは限りません。
プロンプトには、次の情報を具体的に含めましょう。
- 想定読者
- 読者が抱えている悩み
- 記事の目的
- 狙うキーワード
- 関連する疑問
- 記事に含める見出し
- 避けるべき表現
- 根拠がない情報を断定しないルール
たとえば、次のような指示です。
text
キーワード「WordPress AI自動投稿」を検索する初心者向けに記事を作成してください。<br>
導入前の不安、プラグインの設定方法、下書き保存と自動公開の違い、
API料金、エラー対策、SEO上の注意点を説明してください。<br>
不確かな情報は断定せず、見出しごとに結論を先に書いてください。<br>
検索ユーザーは、使い方だけでなく「安全に使えるのか」「料金はいくらか」「失敗したときに戻せるか」も気にしています。
こうした潜在的な悩みまでプロンプトに含めると、実用性の高い記事を作りやすくなります。
よくある失敗と対策
APIキーをソースコードに直接記述する
テーマファイルや公開リポジトリにAPIキーを書くと、第三者に悪用される可能性があります。
APIキーは管理画面、環境変数、サーバーの安全な設定ファイルなどで管理してください。
生成直後に大量公開する
AIの出力は毎回同じ品質になるとは限りません。
まずは少数の記事を下書きとして生成し、問題がないことを確認してから本数を増やしましょう。
WP-Cronが重複登録される
プラグイン有効化のたびにイベントを登録すると、同じ処理が複数回実行されることがあります。wp_next_scheduled()で既存イベントを確認してください。
タイムアウトやAPI制限を考慮していない
長文生成を短時間に繰り返すと、タイムアウトや利用制限が発生します。
生成数を制限し、失敗時のログを残し、必要に応じて再実行できる設計にしましょう。
AI文章をそのままSEO対策に使う
AIは文章作成を効率化できますが、実体験や独自データまでは自動で補えません。
公開前に、実際の使用感、具体例、比較情報、専門家の見解などを加えることが重要です。
まとめ
WordPress AI自動投稿の自作プラグインは、AI APIとWordPressの投稿機能、WP-Cronを組み合わせることで開発できます。
基本的な流れは、次のとおりです。
- プラグインを作成する
- APIキーと設定画面を用意する
- AI APIから記事を生成する
wp_insert_post()で下書き保存する- WP-Cronで定期実行する
- 内容を確認して予約投稿または公開する
最初から完全自動公開を目指すのではなく、下書き保存、重複チェック、エラーログ、投稿数制限を導入することが成功のポイントです。
AIは記事作成を効率化する強力なツールですが、検索ユーザーに価値を届けるには人による確認も欠かせません。
自動化する範囲を少しずつ広げながら、品質と安全性を両立できる仕組みを構築しましょう。






