生成AIが出力した記事をWordPressサイトに一括インポートしたいと思ったことはありませんか?

弊社では、TCDデモサイトの数十のダミー記事を一括投稿する際に使っています。大変時短となり、便利です。用途が限定的なため、需要があるかは分かりませんが、使い道によっては便利な方法なのでシェアしたいと思います。

WordPressテーマ「GLUE」
WordPressテーマ「GLUE」
無料で高機能なWordPressテーマが手に入る。

AI生成記事をCSVでインポートする手順

WordPressサイトに、AI生成記事を一括インポートするには、以下の手順で行います。

  1. 必要な項目や形式をAIに指示する
  2. AI生成したものをCSVに変換する
  3. WP All ImportでCSVをインポートする

必要な項目や形式をAIに指示する

記事をAI生成する前に、必要な項目・ファイルの出力形式を指示します。

たとえば、次のようなプロンプトです。

以下の条件でダミー記事を5件生成してください。飲食店サイトのお知らせ記事を想定します。

各記事の項目は以下の通り。

post_title:記事タイトル(例:新メニューのお知らせ、臨時休業のお知らせ)
post_content:本文(段落ごとに改行を含む。例:メニューの詳細、営業時間変更、イベント案内)
post_date:投稿日(YYYY-MM-DD形式、2025年8月の日付をランダムに)
post_status:publish

出力形式はカンマ区切りCSVで、1行目に項目名を含める。文字コードはUTF-8。
本文に改行が入る場合は、ダブルクオーテーションで囲む。

上記の本文の箇所に、必要に応じて細かい条件を追加してもいいです(何文字以上など)。

生成する情報量によっては、カンマの位置がズレて出力されたり、CSV化した際に項目名とデータがバラバラになることもあります。うまくいかない場合は、他の生成AI(GoogleのAI「Gemini」など)を試すか、スプレッドシートで手動修正することも検討しましょう。

AI生成したものをCSVに変換する

多くの生成AIでは、文章をテキスト形式で出力するため、そのままではWordPressにインポートできるCSVファイルとして利用できません。

改行やカンマの扱い、文字コードなどはユーザー側で整形する必要があります。

ChatGPTから出力されたカンマ区切りのCSVデータ

ChatGPTから出力されたカンマ区切りのCSVデータ

以下の手順でCSV形式に変換しましょう。

  1. 生成されたテキストをコピーする
  2. メモ帳やGoogleスプレッドシートに貼り付ける
  3. 「.csv」形式で保存する
  4. 文字コードはUTF-8に指定する

まずテキストをコピーして、メモ帳やスプレッドシートに貼り付け、「.csv」形式で保存します。その際、文字コードは必ずUTF-8に指定してください。

Windowsではメモ帳やExcelでUTF-8を指定して保存、Macではテキストエディットを「標準テキスト」にしてからCSV形式で保存すると安全です。

Macのテキストエディット設定画面

WP All ImportでCSVをインポートする

CSVデータが準備できたら、WP All Importなどのプラグインを使ってWordPressに取り込みます。

基本的な流れは次の通りです。

  1. CSVファイルをアップロード
  2. 投稿タイプを選択
  3. フィールドのマッピング
  4. インポートの実行
少量からインポートして、意図したデータが正しく反映されるか確認するのがおすすめです。

詳細な手順は、こちらの記事を参考にしてください。

WooCommerceのレビューをCSVでインポートする方法

WooCommerceの商品レビューは、WordPressのコメント機能を利用しています。

そのため、プラグイン「WP All Import」の無料版ではインポートができません(コメントのインポートは有料版のみ可)。

ここでは応用編として、PHPスクリプトを使って、レビュー(コメント)をCSVから一括登録する方法を紹介します。

基本的な流れは次の通りです。

  1. レビューデータをAI生成し、CSVに変換する
  2. CSVデータと、PHPスクリプトをWordPressのルートディレクトリに設置する
  3. 設置したPHPスクリプトを実行する

レビューデータをAI生成し、CSVに変換する

CSVでレビューデータを準備する際は、以下の項目を含めるとスムーズです。

  • post_id:レビューを紐づける商品の投稿ID
  • comment_author:レビュー投稿者の名前
  • comment_content:レビュー本文
  • comment_approved:承認状態(1=公開、0=非公開)
  • comment_date:投稿日(YYYY-MM-DD形式)
  • comment_rating:評価(1~5)

レビュー(コメント)投稿フォームでは通常「名前」と「メール」が必須ですが、スクリプト経由ではメールは省略可能です。

CSVのpost_idは、必ず対象商品のIDと正確に紐づけてください。存在しないIDを指定すると、レビューは登録されません。

CSVとPHPスクリプトをWordPressのルートディレクトリに設置する

FTPソフトなどを使って、CSVファイルとPHPスクリプトを、WordPressのルートディレクトリにアップロードします。

wp-config.phpと同じ階層(WordPressのルートディレクトリ)にアップロードしてください。

エックスサーバーのファイルマネージャーで2つのファイルをアップした例

以下は、CSVファイル名を「reviews.csv」とした場合、実際に使えるPHPスクリプトです。メモ帳などにコピペして、「import-reviews.php」という名前で保存してご活用いただけます。

<?php
require_once( dirname(__FILE__) . '/wp-load.php' );

// 読み込むCSVファイル名(必要に応じて変更)
$csv_file = __DIR__ . '/reviews.csv';

if (!file_exists($csv_file)) {
    die("CSVファイルが見つかりません: $csv_file");
}

$handle = fopen($csv_file, 'r');
if (!$handle) {
    die("CSVファイルを開けませんでした");
}

// ヘッダー行を取得して列名をキーにしたインデックスを作る
$header = fgetcsv($handle);
$columns = array_flip($header); // 例: ['post_id'=>0, 'comment_author'=>1, ...]

// 必須列のチェック
$required_cols = ['post_id', 'comment_author', 'comment_content', 'comment_approved', 'comment_date', 'comment_rating'];
foreach ($required_cols as $col) {
    if (!isset($columns[$col])) {
        die("CSVに必須列がありません: $col");
    }
}

while (($data = fgetcsv($handle)) !== false) {
    $post_id  = (int)$data[$columns['post_id']];
    $author   = $data[$columns['comment_author']];
    $content  = $data[$columns['comment_content']];
    $approved = $data[$columns['comment_approved']];
    $date     = $data[$columns['comment_date']];
    $rating   = $data[$columns['comment_rating']];

    // 投稿IDが存在するかチェック
    if (!get_post($post_id)) {
        echo "投稿ID $post_id が存在しません。スキップします。<br>";
        continue;
    }

    $commentdata = array(
        'comment_post_ID' => $post_id,
        'comment_author'  => $author,
        'comment_content' => $content,
        'comment_approved'=> $approved,
        'comment_date'    => $date,
        'comment_type'    => 'review',
    );

    $comment_id = wp_insert_comment($commentdata);

    if (!is_wp_error($comment_id)) {
        if ($rating !== '') {
            add_comment_meta($comment_id, 'rating', $rating, true);
        }
        echo "レビュー追加成功: 投稿ID $post_id / レビューID $comment_id<br>";
    } else {
        echo "レビュー追加失敗: " . $comment_id->get_error_message() . "<br>";
    }
}

fclose($handle);

設置したPHPスクリプトを実行する

ブラウザで「https://example.com/import-reviews.php」にアクセスすると、CSVの内容通りにレビューが一括登録されます。白い画面に登録可否のメッセージのみが表示されます。

実行後は、スクリプトを必ず削除してください。誰でもアクセスできる状態で残すのは非常に危険です。

本番環境で実行する前に、必ずテスト環境やテスト商品で確認しましょう。誤ったデータを大量に登録してしまうと、修正に手間がかかります。

よくあるミスと注意点

エラーが出たり、正しくインポートできない場合は、以下の点をチェックしてみてください。

  • CSVのpost_idが、対象商品のIDと紐づいていない
  • CSVの項目名とデータが対応していない
  • CSV内の改行やカンマの扱いが不適切
  • 文字コードがUTF-8になっていない

まとめ

AIで記事やレビューを生成し、CSV経由でWordPressに取り込む方法を紹介しました。

  • AI生成したCSVは、「WP All Import」で一括インポートできる
  • WooCommerceの商品レビューは、PHPスクリプトを使えばCSVから一括登録可能
  • まずは少量から試して、意図した通りに反映されるか確認するのがおすすめ

AIとCSVをうまく組み合わせれば、大量のコンテンツ作成・デモサイト・モックアップの構築などが効率的に行えます。

まずはテスト環境で試してみてください。

WordPressテーマ「HARVES」
WordPressテーマ「HARVES」
高性能なネットショップで売上を上げるWordPressテーマ