WordPressプラグイン「Really Simple CSV Importer」で日本語入力・エクセル管理したCSVデータを取りこむ
WordPressプラグイン「Really Simple CSV Importer」を日本語やエクセルで使用しようと思ったらけっこうつまづいたので諸々メモ。
Really Simple CSV Importerとは
「Really Simple CSV Importer」は、CSVからWordpressに記事をインポートすることができるプラグインです。
商品情報など、たくさんの記事を一括で登録・管理したい場合に便利です。
▼ダウンロード
Really Simple CSV Importer▼制作者BLOG
Takuro Hishikawa :: Really Simple CSV Importer 日本語解説&カスタマイズ例日本語版の解説が載っています。基本的な利用方法はこちらをご覧ください。
上記サイトを見ればだいたい利用方法は問題ないと思うのですが、その他つまづきやすいところ(自分がつまづいたところ)について以下注意点を書きます。
自分がWindowsなので以下はWindows環境の場合です。Macの場合は適宜。
【1】文字セットにUTF-8を使用する
エクセルはUTF-8に対応していないので非推奨
Windowsユーザーの場合、CSVファイルはエクセルで編集される方が多いのではないかと思いますが、Really Simple CSV Importerではエクセル非推奨です。
エクセルで保存可能な文字コードはデフォルトのshift_jisのみなので、エクセルで保存したCSVファイルはそのままではインポートすることができません。
解決策1:UTF-8に対応したCSVエディタでデータを作成する
プラグインではLibreOfficeの使用が推奨されています。
LibreOffice解決策2:エクセルで作成したデータをメモ帳などでUTF-8に保存しなおす
ひと手間かかりますが、新しくソフトをインストールする必要はないです。手順は以下。
- いったんエクセルで保存したCSVファイルを「プログラムから開く」→メモ帳で開く
- 「名前を付けて保存」でファイルの種類は「すべてのファイル」を選択
- 「文字コード」で「UTF-8」を選択
- 保存
これでUTF-8に変換できました。このままアップロードすればOKですが、ファイルに日本語テキストがある場合は【2】もご確認ください。
【2】日本語テキストは””(クオーテーション)で囲む
インポート画面の注意書きでは「全てのテキストセルを引用符で囲ってください。」とあります。試したところ、半角英数のみであれば引用符不要ですが、日本語部分は引用符で囲わないとエラーになるようです。
前述のLibreOfficeには保存形式で「すべてのテキストセルを引用符で囲う」というのがありましたが、そいつで保存すると、どうも囲ってほしくないセルも含めてすべて引用符で囲まれるらしく、エラーをはいてしまいました。
そこで、ちょっと面倒なのですが、以下の手順でとりあえず問題なくインポートできるようになりました
手順1:引用符で囲う
まずはエクセル上で日本語セルに引用符を付けます。データの量が多い場合は手打ちするのが面倒なので、
=””””&文字列のセル&””””
としてまとめて変換してしまうといいと思います。
手順2:引用符を置換する
エクセル上では”文字列”と表示されるわけですが、このファイルをメモ帳などで開くと「”””文字列”””」となってるのがわかります。
なのでそのままメモ帳上で、これを置換(ctrl+H)して置換前:「”””」→置換後:「”」に置き換えてやります。
これを【1】の手順でUTF-8で保存してやると、正しくインポートされるようになりました。
もっとスマートな方法がありそうな気もしますが…ご存知の方いたら教えてください。
【3】リビジョンを削除しておく
post_idは空白の場合、自動的にidが割り振られます。また、既存のidを指定した場合は、該当の投稿が上書きされます。
このため、CSVから記事を上書きすることがある場合は、予め記事のidを与えておいた方が便利です。自動で割りふっれると、あとで更新しようと思った場合、それぞれのidを調べる必要があります。
ふつう連番で振っていくと思いますが、たまに「もうこのidは使われています」みたいな表示が出る場合があります。
確認すると、原因はWordpressのリビジョンにありました。
リビジョン
投稿を編集している際に、やっぱり元に戻したい、となった時に一発で戻せるよう、過去の状態が自動的に保存される機能。Wordpressではデフォルトでついています。
リビジョンにもidが割り当てられているようで、リビジョンに使用されているidを指定してCSVからインポートしようとした場合はエラーとなり記事は登録されません。
なので、CSVからインポートする前にリビジョンを削除しておくか、はじめからリビジョンを保存しない設定にしておく必要があります。
方法1:リビジョンを削除
プラグインで削除することができます。
Better Delete Revision方法2:リビジョン機能を無効化
そもそもリビジョン使わない、っていう場合ははじめから無効化しておくこともできます。
プラグインなら以下のもので。
Revision Controlwp-config.phpに設定を追加する方法も紹介されていました。
WordPressのリビジョン(revision)管理について – 自動バックアップのやつdefine(WP_POST_REVISION, false);