Loading...

2015年7月13日

【WordPress】CSVのアップロードでハマった備忘録

WordPressのCSVアップロードは、すごく便利です。通常、ブラウザで遷移しながら投稿していくため、結構時間がかかってしまいます。特に、重いサーバーの場合は大変です。そんなときに役に立つのがCSVでのアップロードです。今回、2,000件以上の投稿データをアップしたので、その手順をメモしておきます。

経緯

お客様からの要望で、データベースサイトを構築しました。サイボウズ系のDBで構築されているものをWordPressで公開されるというお話で、そのままでは構築できないため、CSVでアップロードすることにしました。気軽に考えていたものが意外と手間取ってしまいました。最終的には、2,000件以上のアップロードができるようにしましたので、事の顛末と手順を備忘録として公開します。

ハマったこと

プラグイン選定

CSV関連のプラグインは、比較的多くあるため、比較的簡単にできるのかなと思ってました。しかし、意外とピタッとハマるプラグインがありませんでした。

    試したプラグイン

  • WP Ultimate CSV Importer
    いろいろ試しても、カスタム投稿でのアップロードができなかった。有料版ならうまく行きそうかと思いましたが、購入までは至りませんでした。
  • Really Simple CSV Importer
    カスタマイズすれば、いろいろできそうなのですが、途中で諦め
  • CSV Importer
    すごくシンプルなので、最初は使えないかなと思ってましたが、最終的にこれでアップロードできるようになりました。

アップロードするとき

Web開発の話というよりかは、エクセルの話も絡みながら、以前から知っていた知識であるにもかかわらず、久しぶりのCSV処理で思い出したことも多いです。なかなかすんなりアップロードできず、いくつかソフトを利用しながら、進めました。やはり盲点は、エクセルです。エクセルのCSVは、意外と癖があるんです。どんな癖かというと、

  • 文字コードがShiftJIS!
  • 基本的には各カラムは、改行が入った場合はダブルコーテーションで囲われるが、改行がないものはダブルコーテーションで囲われない。

一つ目は、よくあるです。別のツールで変換してあげないといけないです。2つ目は、知っていたものの、改めて気付かされました。これも別のツールで解決しました。

手順

エクセルの下準備

エクセルを準備します。csv-1
1行目のカラム名に注意です。

  • csv_post_type
    投稿タイプを記入します。
    • post
      投稿です。
    • page
      固定ページ
    • カスタム投稿
      カスタム投稿名を記入すると、カスタム投稿としてアップロードされます
  • post_status
    投稿のステータスです。publishは、公開済みで即アップされます。draftだと、下書きでアップされます。
  • csv_post_parent
    親の投稿を決めることができます。この辺はうまくできてます。
  • csv_post_slug
    スラッグも決められます。
  • wpcf-・・・
    カスタムフィールドのプラグインのTypesを使っているので、これが先頭に付きます
    なお、画像もアップができます。これは意外と便利でした。サイトに画像をアップしておいて、URLを指定してあげれば、取り込んでくれます。ただし、ファイル名の処理は意外と面倒で、エクセルの関数を駆使しながら、URLを準備(2,000件あるので、手作業では無理)

CSVの出力とその後の処理

エクセルでCSV出力します。余談ですが、エクセルでCSVするときの警告メッセージが面倒ですね。

エクセルのダブルコーテーション問題の解決

前述した通り、CSVにした場合改行が付きません。使ったプラグインのCSV Importerは、ダブルコーテーションがないとアップロードサれないので、Cassava Editorというものを使ってダブルコーテーションをつけてあげます(これは、どんなツールでも大丈夫です)

WPに読み込む際に、UTFでないと行けないので変換

これも前述のエクセルさんの問題であるShiftJIS出力しかないため、お気に入りのEmEditorで変換してあげます。(これも、どのツールでも大丈夫です)

めでたくCSV Importerでアップ

事前に、前述の画像をアップしておいてください。その後、アップですが、弊社のサーバー環境が貧弱なのか、2,000件アップは途中で落ちてしまいました。なので、CSVを分割して3回に分けてアップすると、成功です!

csv-2

WordPressについては、いろいろと試すことも多いので、記事を増やして行く予定です。

お問い合わせ

案件のご依頼やご相談などお気軽にご相談ください。

ご依頼やご相談はこちらから
ページトップへ
Menu