プラグインなしでWordPressにCSVファイルをインポートする方法 (2025年版)

How-to-import-csv-files-in-wordpress-without-a-plugin
import CSV files in WordPress without plugin

プラグインを使用せずに CSV ファイルを WordPress にインポートすることは、特に大量のデータを処理する場合に、コンテンツ管理プロセスを合理化する優れた方法です。 ユーザー、カスタム投稿タイプ、さらには WooCommerce 製品をインポートする場合でも、プログラムで行うことで、パフォーマンスとセキュリティを完全に制御できます。 このガイドでは、プラグインを使用せずに CSV ファイルを WordPress にインポートする手順を説明します。CSV のインポートWordPress データベースに効率的に移動します。

プラグインなしでCSVをインポートするタイミングと理由

データのインポートプログラムプラグインを使用するよりも、いくつかの利点があります。

  • プラグインの肥大化を避ける: サイトの速度を低下させる可能性のあるサードパーティのプラグインに依存する必要はありません。
  • カスタマイズ性: インポートするフィールドを制御し、カスタム投稿タイプやカスタムフィールドのインポートなど、特定のニーズに合わせてプロセスをカスタマイズできます。
  • セキュリティの強化: CSV データをプログラムでインポートすることで、データをサニタイズおよび検証し、悪意のあるコンテンツが WordPress サイトに挿入されないようにすることができます。

更新された前提条件 (2025)

CSV ファイルを WordPress にインポートする前に、次の前提条件を満たしていることを確認してください。

  • WordPress版: このメソッドは、ワードプレス 6.6+および新しいバージョン2024そして2025テーマ。
  • PHPバージョン: パフォーマンスと互換性を向上させるために、PHP 8.1 以降を推奨します。
  • CSV ファイル: CSV ファイルはUTF-8 エンコードスムーズなデータインポートを保証するために適切にフォーマットされています。
  • WP-CLI(英語): オプションですが、コマンドラインスクリプトを使用して CSV インポートを自動化する場合に便利です。

プラグインなしでWordPressにCSVをインポートする手順

1. CSV ファイルを準備する

まず、CSV ファイルクリーンで適切に構造化されています。

  • 最初の行には、post_title、post_content、post_statusなどの列ヘッダーを含める必要があります。
  • ファイルがUTF-8 エンコードエンコードの問題を回避するために。
  • 特殊文字や余分なスペースが存在しないことを再確認してください。

2. カスタムスクリプトを作成する

を処理するにはCSV インポートプロセスでは、カスタムPHPスクリプトを作成する必要があります。 これにより、データを完全に制御し、必要に応じて入力をサニタイズできます。 開始方法は次のとおりです。

アップロードディレクトリを取得する

$upload_dir = wp_upload_dir();

$csv_file = $upload_dir[‘basedir’] です。 ‘/posts.csv’;

このアプローチでは、ハードコードされたファイル パスの使用を回避し、スクリプトをワードプレス 6.6+そして、次のような現代的なテーマ2024そして2025.

3. CSVデータを安全に読み取る

次に、CSV ファイルを開き、その内容の読み取りを開始します。 WordPressに挿入する前に、すべてのデータがサニタイズされていることを確認してください。

if (($handle = fopen($csv_file, "r")) !== FALSE) {

$header = fgetcsv($handle);ヘッダーを読む

while (($row = fgetcsv($handle)) !== FALSE) {

$data = array_combine($header、$row);ヘッダーと行データを結合する

入力のサニタイズと検証

$title = sanitize_text_field($data['post_title']);

$content = wp_kses_post($data['post_content']);

{を試す

wp_insert_post([

'post_title'=> $title、

'post_content'=> $content、

'post_status' => '公開'、

'post_type' => '投稿'

]);

} catch (例外 $e) {

error_log('CSV インポート エラー: ' . $e->getMessage());

}

}

fclose($handle);

}

このメソッドは、入力サニタイズ(sanitize_text_field() や wp_kses_post() など) を使用して、WordPress の投稿に有害なスクリプトが挿入されないようにします。 これらの入力は、特にユーザーインポート又はWooCommerce製品.

プラグインなしでさまざまなデータ型をインポートする

プラグインなしでカスタム投稿タイプをインポートする

プラグインを使用せずにカスタム投稿タイプ(CPT)をWordPressにインポートするには、ネイティブのWordPressのインポート/エクスポート機能、またはSQLクエリまたはWP-CLIを使用して手動でインポートすることもできます。 各方法の詳細なガイドは次のとおりです。

1. WordPressのエクスポート/インポート機能を使用してカスタム投稿タイプをインポートする

WordPressにはエクスポートとインポート機能が組み込まれており、投稿、ページ、カスタム投稿タイプなどのコンテンツをエクスポートできます。 これは比較的簡単な方法ですが、カスタム投稿タイプが正しく設定されており、コンテンツを投稿としてインポートしたい場合にのみ機能します。

カスタム投稿タイプをエクスポートする手順:
  1. WordPressダッシュボードでは、に移動しますツール -> エクスポートをWordPressダッシュボードで。
  2. エクスポートする投稿タイプを選択します:
    • エクスポートする特定のカスタム投稿タイプ(CPT)を選択するか、[すべてのコンテンツを選択]を選択できます。
  3. エクスポート ファイルをダウンロードする:
    • 「エクスポート ファイルのダウンロード」をクリックすると、選択したカスタム投稿タイプの投稿を含む XML ファイル (WXR 形式) が生成されます。
カスタム投稿タイプをインポートする手順:
  1. WordPressダッシュボードでは、に移動しますツール -> インポートをWordPressダッシュボードで。
  2. をインストールしますWordPressインポーター:
    • インポーターがまだインストールされていない場合は、「WordPress」オプションの下にある「今すぐインストール」をクリックします。
  3. エクスポートされたファイルをアップロードする:
    • 以前にエクスポートした XML ファイルを選択してアップロードします。
  4. 作成者の割り当て:
    • インポートプロセス中に、WordPressは作成者を割り当てるか、新しいユーザーを作成するかを尋ねます。
  5. 添付ファイルのインポート:
    • 必要に応じて、添付ファイルをダウンロードしてインポートするオプションを必ずチェックしてください。

この方法は、投稿とCPTの基本的な転送には機能しますが、カスタムフィールド、タクソノミー、または投稿メタは処理しません。

2. SQL 経由でカスタム投稿タイプを手動でインポートする

多数の投稿、カスタムフィールド、または分類のインポートなど、より複雑な要件がある場合は、SQLを使用してデータベースに直接インポートできます。 この方法は、phpMyAdminまたは同様のツールを介してWordPressデータベースにすでにアクセスできることを前提としています。

  1. CSV ファイルを準備する:
    • 投稿タイトル、コンテンツ、カスタムフィールド、分類など、カスタム投稿タイプに関する必要な情報をすべて含むCSVファイルを作成します。
    • CSV には、post_title、post_content、post_type、post_date などの列が含まれている必要があります。
  2. SQL インポート スクリプトを準備する:
    • データベースに手動でデータを挿入する場合は、WordPress の wp_posts、wp_postmeta、wp_term_relationships テーブルの構造に一致する SQL クエリを作成する必要があります。

基本的な CPT をインポートするための SQL クエリの例を次に示します。

wp_postsに挿入(post_title、post_content、post_type、post_date)

価値観

(‘投稿タイトル 1’, ‘投稿コンテンツ 1’, ‘your_cpt’, NOW()),

(‘投稿タイトル 2’, ‘投稿コンテンツ 2’, ‘your_cpt’, NOW());

  1. カスタムフィールドのwp_postmetaへのデータのインポート:
    • カスタムフィールドがある場合は、wp_postmetaテーブルに挿入する必要があります。 例えば:

wp_postmetaに挿入(post_id、meta_key、meta_value)

価値観

(1, ‘your_custom_field_key’, ‘value_for_post_1’),

(2、 ‘your_custom_field_key’、 ‘value_for_post_2’);

  1. タクソノミーのwp_term_relationshipsへのデータのインポート:
    • CPT でカスタム分類 (カテゴリやタグなど) を使用する場合は、それらを wp_term_relationships テーブルに挿入する必要があります。
  1. SQL スクリプトの実行:
    • これらのSQLクエリは、phpMyAdminを使用して実行するか、MySQLコマンドラインインターフェイスを介して直接実行して、WordPressデータベースにデータを挿入できます。

ボーナス: AI を使用してスクリプトを強化する

インポートスクリプトは、次のようなツールを使用して生成または最適化できます。チャットGPT:

「サニタイズされた入力を使用して CSV ファイルからカスタム投稿タイプをインポートする WordPress 互換の PHP スクリプトを作成します。」

これにより、時間を節約し、開発中のエラーを減らすことができます。

プラグインなしでユーザーをインポートする

プラグインなしでユーザーをWordPressにインポートするには、SQLまたはWP-CLIを使用して同じ一般的なプロセスに従うことができます。

SQLを使用したユーザーのインポート:

WordPressのwp_usersテーブルやwp_usermetaテーブルにユーザーデータを直接挿入することができます。 基本的な SQL の例を次に示します。

wp_usersに挿入:

wp_usersに挿入(user_login、user_pass、user_email、user_registered、display_name)

価値観

(‘newuser1’, MD5(‘password1’), ‘[email protected]’, NOW(), ‘新規ユーザー 1’),

(‘newuser2’, MD5(‘password2’), ‘[email protected]’, NOW(), ‘新規ユーザー 2’);

手記: MD5 関数を使用してパスワードを暗号化します (WordPress は内部的により安全な方法を使用しますが、MD5 はこの目的のために機能します)。

ユーザーメタデータの挿入:

ユーザーメタデータ(ロール、カスタムフィールドなど)がある場合は、それをwp_usermetaテーブルに挿入します。

wp_usermetaに挿入(user_id、meta_key、meta_value)

価値観

(1, ‘wp_capabilities’, ‘a:1:{s:10:”サブスクライバー”; b:1;}’)、

(1, ‘wp_user_level’, ‘0’);

  1. wp_capabilitiesメタフィールドは、ユーザーの役割(購読者、管理者など)を決定します。

WP CLI を使用してユーザーをインポートします。

wp user create でユーザーを作成する:

WP CLI の wp user create コマンドを使用してユーザーをインポートできます。 例えば:

WP ユーザー create newuser1 [email protected] –role=subscriber –user_pass=password1

wp user create newuser2 [email protected] –role=administrator –user_pass=password2

スクリプトによる一括ユーザーインポート:

ユーザーの CSV がある場合は、ファイルを読み取り、WP CLI コマンドを使用する bash スクリプトを作成できます。

#!/ビン/バッシュ

IFS=、read -r username email password ロール

WPユーザーcreate “$username” “$email” –role=”$role” –user_pass=”$password”

完了< users.csv

スクリプトの実行

スクリプトの準備ができたら、さまざまな方法で実行できます。

  • ページテンプレートまたはテーマ機能として: このスクリプトをテーマのfunctions.phpに配置するか、カスタムページテンプレートを作成できます。
  • WP-CLI経由:使うWP-CLI(英語) メモリエラーやタイムアウトエラーを回避するために、大きなCSVファイルをバッチ処理します。

たとえば、WP-CLI を使用してカスタム PHP スクリプトを実行すると、次のようになります。

wp eval-file import-posts.php

WP Ultimate CSV Importer Pro

WP Ultimate CSV Importer Pro

Get Ultimate CSV/XML Importer to import data on WordPress faster, quicker and safer.

上級ユーザー向け WP-CLI (2025)

コマンド ラインで作業したい場合は、WP-CLI に CSV インポート用の強力なツールが用意されています。

基本的なWP-CLI ユーザーインポートコマンド:

WPユーザーimport-csv users.csv

カスタム投稿タイプや複雑なインポートの場合は、スクリプトを記述してWP-CLI経由で実行できます。

wp eval-file import-posts.php

使うWP-CLI(英語)大きな CSV ファイルをインポートする際のタイムアウトやメモリ エラーを回避できます。

WP-CLI は、WordPress サイトを管理するための強力なコマンド ライン ツールであり、コマンド ラインを介して投稿、カスタム投稿タイプ、ユーザー、その他のデータをインポートする方法を提供します。 WP-CLI を使用してカスタム投稿タイプをインポートする方法は次のとおりです。

ステップ 1: WP CLI をインストールする (インストールされていない場合)

WP-CLIの公式サイトのインストール手順に従って、WP CLIをインストールできます。 cPanel、Plesk、または別のホスティング環境を使用している場合は、WP-CLIがすでにインストールされている可能性があります。

ステップ 2: データ (CSV、JSON など) を準備する

CSV または JSON 形式を使用してデータをインポートできます。 この例では、CPT データを含む CSV ファイルを使用していると仮定します。

ステップ 3: WP CLI 経由でカスタム投稿タイプをインポートする

WP CLI で wp post create または wp post import コマンドを使用できます。 詳細なプロセスは次のとおりです。

WordPress ディレクトリに移動します:

ターミナルを開き、WordPress インストールのルートに移動します。

cd /パス/to/your/wordpress

wp post create を使用してインポート:

  • 単純な CSV があり、投稿を個別に作成したい場合は、CSV をループして wp post create コマンドを使用できます。

例えば:wp post create –post_type=”your_cpt” –post_title=”あなたの投稿タイトル” –post_content=”CPT のコンテンツ” –post_status=”publish”

  • これを自動化するには、CSV を読み取り、行ごとにこのコマンドを実行するスクリプトを使用できます。

スクリプトの例 (CSV インポートを使用した Bash):

投稿のタイトルとコンテンツを含む CSV ファイルがあると仮定すると、bash スクリプトを使用して投稿をインポートできます。

#!/ビン/バッシュ

IFS=の場合、-r post_title post_contentを読み取る

WP投稿作成 –post_type=”your_cpt” –post_title=”$post_title” –post_content=”$post_content” –post_status=”publish”

完了< posts.csv

このスクリプトは、posts.csvから読み取るときに、各行にカスタム投稿を作成します。

JSON を使用したインポート (詳細):

データがJSON形式の場合は、WP CLIのwp postインポート機能を使用できます(ただし、必要なパッケージをインストールする必要があります)。

次のような JSON ファイルを作成できます。

[

{

"post_title": "投稿 1"、

"post_content": "投稿 1 のコンテンツ"、

"post_type": "your_cpt"

},

{

"post_title": "投稿 2"、

"post_content": "投稿 2 のコンテンツ"、

"post_type": "your_cpt"

}

]

次に、次のコマンドを使用してインポートします。

WPポストインポートposts.json –post_type=”your_cpt”

大きな CSV ファイルを処理するためのパフォーマンスのヒント

大量の CSV ファイルを扱っている場合、メモリ エラーやパフォーマンスの低下が発生する可能性があります。 大規模なデータセットを効率的に処理するためのヒントをいくつか紹介します。

  • バッチ処理: PHP のメモリ制限に達しないように、CSV を小さなチャンクで処理します。
  • メモリ制限の引き上げ: メモリ制限を増やすために、wp-config.php ファイルに次のコードを追加します: define(‘WP_MEMORY_LIMIT’, ‘512M’);
  • トランジェントを使用: インポートプロセスを一時停止して再開する必要がある場合は、トランジェントまたはカスタムデータベースチェックポイント。

セキュリティのベストプラクティス

CSV インポートを使用する場合、悪意のあるデータ インジェクションを防ぐためにセキュリティが最も重要です。 安全なインポートプロセスを確保する方法は次のとおりです。

  • 入力のサニタイズ: sanitize_text_field() や wp_kses_post() などの関数を使用して、外部ソースからのユーザー入力とデータを常にサニタイズします。
  • CSV ファイルの検証: CSVファイルを処理する前に、CSVファイル内に予期しないスクリプトや悪意のあるコードがないか確認してください。
  • アクセスの制限: スクリプトへのアクセスを、管理者権限を持つ認証済みユーザーのみに制限します。
  • ノンスを使用する: CSV アップロード用のカスタム フォームを作成する場合は、ワードプレスヌンシオクロスサイトリクエストフォージェリ(CSRF)から保護します。

環境にやさしいヒント

サーバーの負荷を軽減し、環境への影響を最小限に抑えるには、インポート スクリプトの実行を検討してくださいローカル開発中、またはライブサイトではなくステージング環境の使用中。

よくある質問

1. これらのインポート方法をサポートしているWordPressのバージョンは何ですか?

この方法は、ワードプレス 6.6+および新しいバージョン。 古いバージョンでは調整が必要な場合があります。

2. メモリエラーなしで大きな CSV ファイルを処理するにはどうすればよいですか?

大きなファイルを小さなチャンクに分割したり、バッチ処理をクリックして、データを増分的にインポートします。

3. プラグインなしでカスタム投稿タイプをインポートできますか?

はい! wp_insert_post() を ‘post_type’ => ‘your_custom_post_type’ 引数とともに使用します。

4. カスタムインポートスクリプトを保護するにはどうすればよいですか?

入力をサニタイズし、スクリプト アクセスを認証されたユーザーに制限し、WordPressのナンスクロスサイト要求の偽造を防止します。

5. CSV に特殊文字やエンコードの問題がある場合はどうすればよいですか?

CSV がUTF-8 エンコード.mb_convert_encoding() を使用して非標準文字を処理することもできます。

6. プラグインなしでこれらのインポートを自動化できますか?

はい、WP-CLI を使用するか、CRON ジョブプロセスを自動化します。

7. インポートスクリプトのエラーをデバッグするにはどうすればよいですか?

エネーブルWP_DEBUGまたは、error_log() を使用してインポート プロセスの問題を追跡します。

8. ライブサイトでインポートスクリプトを実行するとどのようなリスクがありますか?

主なリスクには、潜在的なパフォーマンスの問題、データの破損、セキュリティの脆弱性などがあります。 常に最初にステージング環境でテストしてください。

9. プラグインなしで WooCommerce 製品をインポートできますか?

はい、カスタムスクリプトを使用してWooCommerce製品をインポートできますが、カスタム製品のメタフィールドと分類関係を処理する必要があります。

10. これは、WP Ultimate CSV Importer のようなプラグインを使用する場合とどうですか?

プラグインを使用する方が開発者でない人にとっては簡単かもしれませんが、カスタム コードを記述すると、柔軟性と制御性が向上し、パフォーマンスが向上する可能性があります。

WRITTEN BY

Picture of Smackcoders Editorial Team

Smackcoders Editorial Team

The Smackcoders Editorial Team includes plugin engineers, product strategists, and technical writers with over a decade of hands-on WordPress development experience. We build and support real WordPress tools, and every article is based on practical testing to help readers apply solutions with confidence.

On this Page

WP Ultimate CSV Importer Pro

Get Ultimate CSV/XML Importer to import data on WordPress faster, quicker and safer.