実装知識

WordPressにCSVで記事を一括投稿する方法|自作プラグイン「Simple CSV Post Importer」の使い方

WordPressサイトを運用していると「数十〜数百件の記事を一気に投稿したい」というシーンに遭遇することがあります。用語辞典の大量投入、旧サイトからのコンテンツ移行、ECサイトの商品ページ大量作成など、ケースはさまざまです。

そんなときに役立つのが、CSVファイルから一括で投稿を作成できる仕組みです。当社では、シンプルで使いやすいCSVインポート用のWordPressプラグイン「Simple CSV Post Importer」を独自に開発し、GitHubで無料公開しています。

本記事では、このプラグインを使ってWordPressにCSVから一括で記事を投稿する手順を、具体的な画面付きで解説します。具体的には、以下のような活用が可能です。

  • 用語辞典・商品カタログなどの定型コンテンツの大量投入
  • 旧サイトからの記事データの一括移行
  • CSVに公開日時を指定した予約投稿の自動登録
  • 任意の投稿タイプ・タクソノミー・カスタムフィールドへの柔軟なマッピング
  • アイキャッチ画像URLからの画像自動取り込み
  • ExcelやGoogleスプレッドシートで管理したコンテンツのワンクリック投入

管理画面から手作業で1件ずつ入力していた作業を、CSVを1つアップロードするだけで完結できるようになります。

本記事の編集、運営はピークスマーケティング株式会社が行っています。詳細は、コンテンツ制作ポリシープライバシーポリシーを参照ください。

前提条件

このプラグインを使うには、以下の準備が必要です。

  • WordPress 5.0以上がインストールされていること
  • PHP 7.4以上の動作環境であること
  • 管理者権限(manage_options)を持つユーザーでログインできること
  • 投入する記事データをまとめたCSVファイルを用意できること
  • カスタム投稿タイプやカスタムタクソノミーを使う場合は、事前にWordPress側で登録済みであること
小森 健

監修者

小森 健

動作環境はWordPressが動いていればほぼクリアできる条件です。特殊なサーバー設定や追加のPHP拡張モジュールは不要なので、一般的なレンタルサーバーでもそのまま使えます。

ステップ1:プラグインのダウンロードとインストール

まずはGitHubからプラグインのファイルを入手し、WordPressにインストールします。

  1. 当社GitHubリポジトリ「Simple CSV Post Importer v1.0.0」にアクセスします。
  2. ページ下部の「Assets」セクションからSource code (zip)をダウンロードします。
  3. WordPressの管理画面にログインし、左メニューから「プラグイン」→「新規追加」をクリックします。※アップロードファイルはzipファイルのみとなります
  4. 画面上部の「プラグインのアップロード」ボタンをクリックし、ダウンロードしたZIPファイルを選択して「今すぐインストール」をクリックします。
  5. インストールが完了したら、「プラグインを有効化」をクリックします。
  6. 有効化に成功すると、管理画面の左メニュー「ツール」配下に「CSV Post Importer」という項目が追加されます。
遠野 涼真

エンジニア

遠野 涼真

このプラグインはPHPファイル1つだけで構成されており、依存ライブラリや外部サービスは一切使っていません。シンプルな設計なので、既存サイトへの影響を心配する必要がなく、使わなくなったら無効化するだけで元の状態に戻せます。

ステップ2:CSVファイルの準備

次に、投入したい記事データをまとめたCSVファイルを準備します。ExcelやGoogleスプレッドシートで作成できます。

  1. 表計算ソフトで新しいシートを開き、1行目にヘッダー(列名)を記述します。最低限必要な列はpost_title(タイトル)です。
  2. 2行目以降に、投稿したい記事のデータを1行ずつ入力します。
  3. ファイルを「CSV UTF-8(コンマ区切り)(*.csv)」形式で保存します。Excelの場合は「名前を付けて保存」→ファイル形式で選択します。

使用できる主な列名

CSVで使える列名は以下のとおりです。必要な列だけを使えば動作します。

列名 必須 説明
post_type 投稿タイプ(省略時はpost) post / page / カスタム投稿タイプ
post_title タイトル 記事のタイトル
post_name スラッグ my-article-slug
post_status 公開ステータス publish / draft / future / private
post_date 公開日時(未来日時なら予約投稿) 2026-04-08 10:00:00
post_excerpt 抜粋 記事の抜粋テキスト
post_content 本文(HTML可) 本文のテキストやHTML
featured_image_url アイキャッチ画像URL https://example.com/img.jpg
tax_○○ タクソノミー(例:tax_category) news|update(複数は|区切り)
meta_○○ カスタムフィールド(例:meta_price) 1980

サンプルCSV

最もシンプルな例として、3件の記事を一括投稿するCSVは次のようになります。

post_type,post_title,post_name,post_status,post_content,tax_category
post,初めての記事,first-article,publish,これは1つ目の記事の本文です。,news
post,2つ目の記事,second-article,publish,これは2つ目の記事の本文です。,news|update
post,3つ目の記事,third-article,draft,これは下書きの記事です。,update
桐生 沙耶

Webデザイナー

桐生 沙耶

CSVで一番つまずきやすいのが文字コードの問題です。Excelで普通に「CSVで保存」を選ぶとShift-JISになってしまうことがありますが、このプラグインはUTF-8もShift-JISも自動判別してくれるので、どちらの形式で保存しても正しく取り込めます。

注意

Excelで0001のような先頭ゼロを含む値を入力すると、Excelが自動的に数値として認識してゼロを消してしまいます。文字列として扱いたい場合は、セルの書式を「文字列」に設定してから入力してください。また、改行を含むセルは自動的にダブルクォートで囲まれますが、手動でCSVを編集する場合は注意が必要です。

ステップ3:CSVをアップロードしてインポート実行

CSVファイルが準備できたら、いよいよインポートを実行します。

  1. WordPress管理画面の左メニューから「ツール」→「CSV Post Importer」をクリックします。
  2. CSV Post Importerのページが開きます。上部にアップロードフォーム、下部にCSVフォーマット仕様の解説が表示されます。
  3. 「CSVファイル」の項目で「ファイルを選択」ボタンをクリックし、ステップ2で作成したCSVファイルを選びます。
  4. インポート実行」ボタンをクリックします。CSVの行数によって数秒〜数十秒で処理が完了します。
  5. 処理が完了すると、画面上部に結果が表示されます。成功・失敗件数と、エラーがあった場合の行番号付き詳細が確認できます。
  6. WordPressの「投稿一覧」ページに移動して、実際に投稿が追加されたことを確認します。
小森 健

監修者

小森 健

エラーがあった場合、失敗した行の番号と理由が詳細表示されるので、原因を特定しやすくなっています。例えば「12行目: post_titleが空です」「27行目: 投稿タイプ「invalid-type」が存在しません」のように、どこで何が起きたかが一目瞭然です。

応用編:予約投稿・カスタム投稿タイプ・アイキャッチ画像

基本的な使い方を押さえたら、さらに便利な応用的な使い方も覚えておくと効率が格段に上がります。

応用1:予約投稿で1日1記事ずつ自動公開

「200件の記事を、明日から1日1記事ずつ自動で公開したい」というケースでは、CSVで簡単に予約投稿を一括登録できます。

post_type,post_title,post_status,post_date,post_content
post,第1話 出会い,future,2026-04-08 10:00:00,第1話の本文です。
post,第2話 別れ,future,2026-04-09 10:00:00,第2話の本文です。
post,第3話 再会,future,2026-04-10 10:00:00,第3話の本文です。

ポイントは以下の2つです。

  • post_statusfutureに設定する
  • post_dateに未来の日時をYYYY-MM-DD HH:MM:SS形式で記述する

これだけで、WordPressのスケジューラが指定日時に自動的に公開してくれます。Excelの日付計算機能と組み合わせれば、200件分の連続予約投稿も数分で作成できます。

応用2:カスタム投稿タイプへのインポート

通常の投稿(post)以外に、カスタム投稿タイプにも対応しています。例えば商品情報を扱う「product」というカスタム投稿タイプに投入する場合は次のようになります。

post_type,post_title,post_status,meta_price,meta_stock,tax_product_category
product,商品A,publish,1980,在庫あり,キッチン用品
product,商品B,publish,2980,在庫あり,キッチン用品
product,商品C,publish,4980,予約販売,ガーデニング

post_type列に対象の投稿タイプ名を指定するだけで、任意の投稿タイプに登録できます。ただし、対象の投稿タイプはWordPress側で事前に登録されている必要があります。

応用3:アイキャッチ画像を一括設定

CSVにfeatured_image_url列を追加してアイキャッチ画像のURLを記述すると、その画像が自動的にメディアライブラリに取り込まれ、各記事のアイキャッチとして設定されます。

post_type,post_title,post_status,featured_image_url
post,記事1,publish,https://example.com/images/img1.jpg
post,記事2,publish,https://example.com/images/img2.jpg
post,記事3,publish,https://example.com/images/img3.jpg
遠野 涼真

エンジニア

遠野 涼真

アイキャッチ画像の取得にはWordPress標準のmedia_sideload_image()関数を使っています。画像は一旦サーバーにダウンロードしてメディアライブラリに登録されるので、元の画像URLが後で削除されても、WordPress側に画像が残り続けます。

注意

アイキャッチ画像URL指定方式では、画像が事前にどこかのWebサーバーに公開されている必要があります。ローカルPCの画像をそのままCSVで指定することはできません。事前にWordPressのメディアライブラリに画像をまとめてアップロードしておき、そのURLをCSVに記載する方法も使えます。

導入事例:自社運営キャンプメディア「キャンプバルーン」のキャンプ用語辞典

Simple CSV Post Importerは、実際に当社が運営するキャンプメディア「キャンプバルーン」のコンテンツ運用でも活用しています。具体的な活用事例として、キャンプ用語辞典コンテンツの一括投入プロジェクトをご紹介します。

プロジェクト概要

キャンプバルーンでは、初心者から経験者まで役立つ「キャンプ用語辞典」を新規コンテンツとして立ち上げることになりました。テント、タープ、焚き火台、シュラフなど、キャンプで使われる専門用語を200語収録し、それぞれを個別の記事として公開するという規模の大きいプロジェクトです。

プロジェクトの要件

  • カスタム投稿タイプ dictionary-listで管理
  • 50音の頭文字別にカスタムタクソノミーで分類
  • 合計200語を1日1語ずつ予約投稿で公開(約6.5ヶ月分)
  • 各記事に独自のスラッグを設定
  • 本文は1000〜1500字の中規模コンテンツ

課題:手作業では膨大な工数が必要

この200記事を手作業で投稿すると、以下のような問題が発生します。

手作業で投稿する場合の問題点

  • 1記事あたり5〜10分かかるとして、合計で約20時間以上の作業時間が必要
  • 200回の予約投稿日時設定で入力ミスが発生しやすい
  • カスタム投稿タイプとカスタムタクソノミーの設定を毎回手動で行う必要がある
  • 後から修正が必要になった場合、200記事分の再編集が非現実的
  • 執筆と投稿作業が分離できず、執筆者の負担が大きい

解決:Simple CSV Post Importerでワンクリック投入

Simple CSV Post Importerを使うことで、このプロジェクトは以下のような効率的なワークフローで進められました。

  1. 執筆者はスプレッドシートに集中:GoogleスプレッドシートやExcelで200語の情報を1行ずつ入力していく。列にはpost_title(用語名)、post_name(スラッグ)、post_content(本文)、post_date(公開日時)、tax_dictionary_category(頭文字カテゴリ)などを設定。
  2. 10件ずつのバッチに分割:進捗管理と品質確認を兼ねて、200語を10語ずつの20バッチに分けて作成。
  3. 各バッチをCSV化してインポート:完成したバッチから順次CSV出力し、Simple CSV Post Importerの管理画面からアップロード。1バッチあたり数秒〜10秒程度で完了。
  4. 予約投稿として自動公開:post_status=futurepost_dateの組み合わせで、1日1語ずつ自動的に公開される設定に。

結果:大幅な工数削減と品質向上

この方法により、以下のような効果を得られました。

プラグイン活用の効果

  • 投稿作業時間が約20時間から1時間未満に短縮(95%以上の削減)
  • 予約投稿日時の入力ミスがゼロに(Excelの日付計算で自動生成)
  • 執筆者はスプレッドシートでの文章作成に専念できる
  • カテゴリ分類やスラッグ設定もCSVで一括管理できるため、後からの修正も容易
  • 200語の6.5ヶ月分の予約投稿が数時間で完了
小森 健

監修者

小森 健

このキャンプバルーンでの活用経験から、Simple CSV Post Importerの汎用性を高めて一般公開することにしました。当初はキャンプバルーン専用の内部ツールでしたが、カスタム投稿タイプやカスタムタクソノミーへの対応を汎用化することで、他のサイトでもそのまま使えるようになっています。

ポイント

このように、大量の定型コンテンツを扱うメディアサイトや、カテゴリ別の用語集・事典的なコンテンツを展開するプロジェクトでは、Simple CSV Post Importerのような一括インポートの仕組みが生産性を劇的に改善します。特に執筆フェーズと投稿フェーズを分離できる点が、チーム運用では大きなメリットとなります。

注意点まとめ

実際の運用で気をつけたいポイントを整理しておきます。

  • 実行前に必ずデータベースのバックアップを取得する
  • 本番環境で実行する前に、テスト環境で動作確認を行う
  • 同じCSVを2回実行すると重複投稿されるため、再実行時は注意する
  • 大量データを扱う場合はPHP実行時間制限(max_execution_time)に注意し、必要ならCSVを分割する
  • アイキャッチ画像URLは事前にアクセス可能な状態になっていることを確認する
  • カスタム投稿タイプやカスタムタクソノミーは、WordPress側で事前に登録済みである必要がある
  • CSVの文字コードはUTF-8またはShift-JISに対応(自動判別)

メリット

  • シンプルな設計で初心者でも迷わず使える
  • 1ファイル構成で既存サイトへの影響が最小限
  • 任意の投稿タイプ・タクソノミー・カスタムフィールドに対応
  • アイキャッチ画像URLから自動取り込みが可能
  • 予約投稿にも対応し、連続公開の自動化ができる
  • オープンソースで完全無料、カスタマイズも自由

デメリット

  • 複雑なマッピング設定や条件分岐には非対応
  • 既存投稿の更新機能は搭載していない(新規投稿のみ)
  • 重複チェック機能はないため、同じCSVの2回実行に注意が必要
  • WordPress公式ディレクトリには未登録(GitHub配布のみ)

プラグインのダウンロードはこちら

「Simple CSV Post Importer」はGitHubで無料公開しています。下記リリースページから最新版をダウンロードしてご利用ください。

GitHub(v1.0.0リリースページ):
https://github.com/peaksmarketing/simple-csv-post-importer/releases/tag/v1.0.0

ページ下部の「Assets」セクションからSource code (zip)をダウンロードできます。READMEには使い方の詳細やサンプルCSVも掲載していますので、あわせてご確認ください。

WordPressへのCSV一括投稿は、手順さえ押さえてしまえば驚くほど簡単に実行できます。用語辞典の投入、サイト移行、ECサイトの商品大量登録など、手作業では数日かかる作業も、CSVを1つアップロードするだけで数分で完了します。

当社ではこのプラグインの導入サポートや、CSVデータの整形、カスタマイズ対応なども承っております。「自社の要件にあわせてカスタマイズしたい」「CSVの作り方が分からない」といったご相談がありましたら、お気軽にお問い合わせください。

小森健

本記事の監修者

ピークスマーケティング株式会社
代表取締役 小森 健

本記事の監修者

ピークスマーケティング株式会社 代表取締役
小森 健

ベンチャーから大手広告代理店まで、Web制作・デジタルマーケティング領域に従事。
複雑なWebサイト制作、LP制作、比較サイト制作、ECサイト構築、動画制作を中心に、情報設計・デザイントンマナ設計を起点としたフロントエンド設計・CSS・PHP実装まで一貫して対応。
本記事では、Web制作の実務経験をもとに、内容の正確性と実務での再現性の観点から監修を行っています。

制作についてプロに無料見積りする