更新日2015/10/03 この記事は約 3 分で読めます。

WordPressで大量の記事・CSVデータを上書きインポートする方法

Wordpress-CSV

CSVをインポートした後に、追加のCSVを上書きしたいと思うことがあります。
1つや2つなら手作業でも可能ですが、数百や数千となると無理です。

そこでWordpressにCSVをインポートする際に使った「WordPressで簡単に大量の記事・データをインポートする方法」CSV Importerプラグインを改良して上書きできる様にします。

CSV Importerの上書き結果

Wordpressバージョン3.9.1
CSV Importerプラグインバージョン 0.3.8で検証しました。

うまく上書き出来ました。
上書きは上手くできるのですが注意点が何点かあります。

CSV Importerのコード修正

こんな感じで修正しました。

		//2014年05月19日 修正 222行目
		foreach ($csv->connect() as $csv_data) {
		    if ($post_id = $this->create_post($csv_data, $options)) {
		        $imported++;
		        $comments += $this->add_comments($post_id, $csv_data);
		        unset($csv_data['update']);//updateのセルがカスタムフィールドとして作成されないように削除
		        $this->create_custom_fields($post_id, $csv_data);
		    } else {
		        $skipped++;
		    }
		}
		/* 元コード
        foreach ($csv->connect() as $csv_data) {
            if ($post_id = $this->create_post($csv_data, $options)) {
                $imported++;
                $comments += $this->add_comments($post_id, $csv_data);
                $this->create_custom_fields($post_id, $csv_data);
            } else {
                $skipped++;
            }
        }
		*/

このほかにもあと2ヶ所修正しました。
詳しくはダウンロードファイルをご確認下さい。

CSV Importerの注意点

まずCSVファイルに update と言う項目が必要になります。
上書きファイルをアップデートする際には update の項目に 「true」を入れます。

あとは、アップデート(追加)用のCSVファイルをアップロードするだけでOKです。

面倒だと思ってはじめ(1回目の新規インポート)から全部に update > true を入れてアップロードすると全てスキップされます
1件も登録されませんので注意が必要です。

逆に、面倒だと思ってアップデート用のCSVファイルに update > true を入れないと全て新規インポートになり2重登録されます

まずインポートした同じデータがあるのが大前提です。そのデータに追加・変更すると言うことです。

  • 新規ファイルには update > true を入れないこと
  • アップデートファイル には update > true を入れること
  • インポートした同じデータがあるのが大前提

これを守れば快適に動作しました。

ダウンロード

ダウンロードしてプラグインに上書きして下さい。
FTP接続>/wp-content/plugins/csv-importer/csv_importer.php へ上書きアップロードでOKです。

ダウンロードする

CSVインポート用の仕様書も作成して入れておきましたのでご利用下さい。

まとめ

手を抜いたらダメ。

WP Ultimate CSV Importerもあるけど、どちらも一長一短。

ちなみに WP Ultimate CSV Importer バージョン 3.5.3 も試しましたが上書きインポートは出来ません。
ただタイトルや本文で重複チェックが可能なので、データインポート後に新規と旧データが混ざったCSVファイルをアップロードする際は重複登録・新規登録を簡単にしてくれます。

参考サイト

参考にさせていただいたサイトをご紹介します。
http://www.wp-mynote.com/2013/03/csv-importer.html
参考どころか、このコードのままです。ありがとう御座いました。
参照先は wordpress3.5.1 CSV Importer0.3.7 の環境ですが、わたしは WordPressバージョン3.9.1 CSV Importerプラグインバージョン 0.3.8で検証しても正常に動作しております。

「WordPressで大量の記事・CSVデータを上書きインポートする方法」への2件のコメント

  1. zeroxone より:

    これってない項目が空で上書きされませんか?
    例えば本文は変えたくないので省いたら空になってしまうんですけど。

    1. りょう より:

      動作は正常です。
      全文を上書しますので、元のデータで記載している本文の中身を空にしたら「空」にしたことが上書きされます。
      つまりCSVの1行を正確に上書きします。

WordPressで大量の記事・CSVデータを上書きインポートする方法へコメントをする

※メールアドレスは公開されません。