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

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

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

目次

CSV Importerの上書き結果

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

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

CSV Importerのコード修正

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

[php]
//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++;
}
}
*/
[/php]

このほかにもあと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で検証しても正常に動作しております。

目次