Simple CSV Post Importer
WordPress plugin to bulk import posts from CSV files with support for custom post types, taxonomies, custom fields, and featured images.
by Peaks Marketing · github.com/peaksmarketing/simple-csv-post-importer · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/peaksmarketing/simple-csv-post-importer/archive/refs/heads/main.zipWordPressにCSVファイルから投稿を一括インポートできる、シンプルで汎用的なプラグインです。
任意の投稿タイプ・タクソノミー・カスタムフィールド・アイキャッチ画像URLに対応しており、ブログ記事の一括投入、旧サイトからの記事移行、定型コンテンツの量産などに活用できます。
特徴
- ✅ 任意の投稿タイプ対応 —
post、page、カスタム投稿タイプすべてOK - ✅ タクソノミー対応 — カテゴリー、タグ、カスタムタクソノミーに対応
- ✅ カスタムフィールド対応 — 任意のメタキーをCSVで指定可能
- ✅ アイキャッチ画像URL対応 — URLからメディアライブラリへ自動取り込み
- ✅ 予約投稿対応 —
post_status=futureとpost_dateで日時指定 - ✅ 文字コード自動判別 — UTF-8(BOM付き)、Shift-JIS、EUC-JPに対応
- ✅ エラーハンドリング — 失敗した行を行番号付きで表示
- ✅ シンプル設計 — 1ファイルのみ、依存ライブラリなし
- ✅ サンプルCSV同梱 — すぐに試せる5種類のサンプル付き
動作環境
- WordPress 5.0 以上
- PHP 7.4 以上
- 管理者権限(
manage_options)を持つユーザー
インストール
方法1: ZIPファイルからインストール(推奨)
- このリポジトリのReleasesページから最新版の
simple-csv-post-importer.zipをダウンロード - WordPress管理画面にログイン
- 「プラグイン」→「新規追加」→「プラグインのアップロード」
- ダウンロードしたZIPファイルを選択して「今すぐインストール」
- 「プラグインを有効化」をクリック
方法2: 手動アップロード
- ZIPファイルを解凍
simple-csv-post-importerフォルダごとwp-content/plugins/ディレクトリにアップロード- WordPress管理画面の「プラグイン」ページで有効化
使い方
1. プラグインを有効化
WordPress管理画面の「ツール」→「CSV Post Importer」からアクセスできます。
2. CSVファイルを準備
以下のフォーマットでCSVファイルを作成します。1行目はヘッダー行、2行目以降にデータを記述します。
post_type,post_title,post_name,post_status,post_date,post_content,tax_category,featured_image_url
post,初めての投稿,first-post,publish,2026-04-08 10:00:00,これは本文です。,news|update,https://example.com/image1.jpg
post,2件目の投稿,second-post,draft,,下書きの本文です。,news,
すぐに試せるサンプルCSVが samples/ フォルダに5種類同梱されています。詳しくは「サンプルCSV」のセクションをご覧ください。
3. 管理画面からアップロード
「ツール」→「CSV Post Importer」のページでCSVファイルを選択し、「インポート実行」ボタンを押すだけです。
実行後、成功・失敗件数とエラー詳細(行番号付き)が表示されます。
CSVフォーマット仕様
基本列
| 列名 | 必須 | 説明 | 例 |
|---|---|---|---|
post_type |
△ | 投稿タイプ(省略時はpost) |
post / page / カスタム投稿タイプ |
post_title |
✅ | タイトル | 記事のタイトル |
post_name |
スラッグ | my-article-slug |
|
post_status |
公開ステータス(省略時はdraft) |
publish / draft / future / private |
|
post_date |
公開日時 | 2026-04-08 10:00:00 |
|
post_excerpt |
抜粋 | 記事の抜粋テキスト | |
post_content |
本文(HTML可) | <p>本文</p> |
|
featured_image_url |
アイキャッチ画像URL | https://example.com/image.jpg |
タクソノミー列(tax_プレフィックス)
列名に tax_ プレフィックスを付けることで、任意のタクソノミーのタームを設定できます。複数のタームはパイプ「|」で区切ります。
| 列名 | 対応するタクソノミー |
|---|---|
tax_category |
カテゴリー |
tax_post_tag |
タグ |
tax_my_taxonomy |
カスタムタクソノミー「my_taxonomy」 |
例: news|update → 2つのタームを設定
⚠️ ターム指定はスラッグでもターム名でも動作します(WordPressのwp_set_object_termsの仕様に準拠)。
カスタムフィールド列(meta_プレフィックス)
列名に meta_ プレフィックスを付けることで、任意のカスタムフィールド(post meta)を設定できます。
| 列名 | 対応するメタキー |
|---|---|
meta_subtitle |
subtitle |
meta_author_name |
author_name |
meta_price |
price |
サンプルCSV
samples/ フォルダに5種類のサンプルCSVが同梱されています。プラグインのインストール後、これらのファイルをそのままアップロードすることで動作確認ができます。
| ファイル名 | 内容 |
|---|---|
sample-1-basic.csv |
基本的な3記事の一括投稿(最もシンプルな例) |
sample-2-scheduled.csv |
7件の連続予約投稿(1日1記事ずつ自動公開) |
sample-3-custom-post-type.csv |
カスタム投稿タイプ「product」+ カスタムフィールド + タクソノミー |
sample-4-featured-image.csv |
アイキャッチ画像URLからの自動取り込み |
sample-5-all-features.csv |
全機能を盛り込んだ総合サンプル(12列) |
サンプル1: 通常のブログ記事を一括投稿
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
サンプル2: 予約投稿(1日1記事ずつ自動公開)
post_type,post_title,post_name,post_status,post_date,post_content
post,第1話 出会い,episode-01,future,2026-04-08 10:00:00,第1話の本文です。
post,第2話 別れ,episode-02,future,2026-04-09 10:00:00,第2話の本文です。
post,第3話 再会,episode-03,future,2026-04-10 10:00:00,第3話の本文です。
サンプル3: カスタム投稿タイプ + カスタムフィールド
post_type,post_title,post_status,meta_price,meta_stock,tax_product_category
product,オリジナルマグカップ,publish,1980,在庫あり,キッチン用品
product,ステンレスタンブラー,publish,2980,在庫あり,キッチン用品
product,木製まな板,publish,4980,予約販売,キッチン用品
⚠️ サンプル3を使う場合は、事前にWordPressで product という投稿タイプと product_category というタクソノミーが登録されている必要があります。
よくある質問
Q. インポート可能な件数の上限はありますか?
プラグイン自体には上限はありませんが、PHP設定の max_execution_time(実行時間上限)、upload_max_filesize(アップロードサイズ上限)、post_max_size(POSTサイズ上限)、memory_limit(メモリ上限)の影響を受けます。
数百件以上を一括処理する場合は、サーバーの設定変更や、CSVファイルの分割を推奨します。
Q. アイキャッチ画像のURLが無効だった場合はどうなりますか?
投稿自体は作成されますが、アイキャッチ画像の設定はスキップされ、エラー詳細にその行が記録されます。
Q. Shift-JISのCSVも使えますか?
はい、対応しています。プラグインが自動で文字コードを判別してUTF-8に変換します。Excelで作成したCSVをそのまま使うことも可能です(推奨はBOM付きUTF-8)。
Q. 既存の投稿を更新できますか?
現バージョンでは新規投稿のみ対応しています。更新機能は将来のバージョンで検討中です。
Q. インポート失敗時に作成された投稿はロールバックされますか?
いいえ、行ごとに独立して処理されるため、途中でエラーが発生しても、それまでに成功した投稿は保持されます。エラー後に再実行する場合は、CSVから成功済みの行を削除してください。
Q. WordPress標準の「インポート」機能との違いは?
WordPress標準の「インポート」は、WordPressのエクスポート形式(WXR)に対応していますが、CSVには対応していません。本プラグインはCSVに特化しており、Excelで作成したデータをそのまま使えるのが大きな違いです。
変更履歴
v1.0.1
- サンプルCSVを5種類同梱(
samples/フォルダ) - READMEにサンプルCSV解説を追加
- インストール時の利便性向上(正しい構造のZIP配布)
v1.0.0
- 初回リリース
- 任意の投稿タイプ・タクソノミー・カスタムフィールド対応
- アイキャッチ画像URL自動取り込み
- 予約投稿対応
- UTF-8/Shift-JIS自動判別
ライセンス
GPL v2 or later
作者
不具合報告・要望
Issuesからお願いします。
Releases
1 release.
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.