CSV Importerで WordPressにcsvを取込む
2015/06/15
CSV Importerで WordPressに csv投稿データを取り込む方法
CSV Importerとは
CSV Importerとは、CSV形式のファイルで WordPressに投稿データを取り込むためのプラグインです。
他のブログサイトから記事を移す場合や、WordPressを CMSとして利用している場合などは、商品情報や店舗情報などをまとめて取り込みたい、というニーズもあると思いますがそんな場合に利用するプラグインです。
CSVファイルを取り出す方法や CSVを取り出してまた WordPressに戻す方法については下記にも記事を書いていますので、あわせて参考にしてください。
WordPress csvインポート、エクスポートのプラグイン
Export to Textで WordPressを csv出力
CSV Importerのインストール方法
WordPressのプラグインのインストールの解説は「WordPressプラグインの3つのインストール方法解説」に記事を書いていますので参考にしてください。
CSV Importerの使い方
「csv importer」を利用すること自体は簡単です。
左メニューの「ツール」-「CSV Importer」をクリックすると下記の画面が表示されます。
この画面で「参照…」ボタンで csvファイルを選択し、「Import」ボタンをクリックすることで csvファイルが WordPressに取り込まれます。
正常に登録されると下記のようにメッセージが表示されます。
「Import posts as drafts」にチェックを入れると「下書き」として取り込まれます。一旦下書きとして取り込み、確認したうえで公開、という手続きを踏みたい方はチェックを入れましょう。
「Organize into category」は、親カテゴリを指定します。
CSVファイルの中に設定されているカテゴリがある場合は、指定されたカテゴリの子カテゴリとして登録されていきます。
また、既存のカテゴリと同じものがある場合は、そこにインポートされます。
CSV Importerを使うための項目とレイアウトの説明
csvで出力したものの一部のテキストを修正したり、バックアップしていたものから復元させる際に利用する場合は、上記のプラグインの使い方が理解できれば問題ありませんが、データを生成する場合は、プラグインの使い方ではなく、WordPressのレコードの持ち方、CSV Importerで取り込む CSVの項目の持ち方について理解しておく必要があります。
ここでは、その CSV Importerのレイアウトについての説明を行います。
csvファイルのサンプル
————————
1 2 |
"csv_post_title","csv_post_date","csv_post_type","csv_post_categories","csv_post_tags","csv_post_post","csv_post_excerpt","csv_post_author","prefecture","ward","address","access","item" "タイトルタイトル","2014-01-01 00:00:00","post","カテゴリ","タグタグタグ","本文本文本文本文本文本文","抜粋抜粋抜粋","admin","東京都","中央区","銀座*丁目**-*","銀座駅より徒歩5分","皮膚科" |
————————
1行目がタイトルで、2行目以降がデータになります。
下記は、編集できる項目です。
(下記の項目の並びは、Export to Textで出力される並びに極力合わせています。)
csv_post_title:タイトル
csv_post_date:投稿日時
csv_post_type:投稿タイプ(post:投稿ページ。page:固定ページ)
csv_post_categories:カテゴリ
csv_post_tags:タグ
csv_ctax_タクソノミー名:カスタムタクソノミー。複数ある場合は「,(カンマ)」で区切る。
csv_post_slug:スラッグ
csv_post_post:本文
csv_post_excerpt:抜粋
csv_post_author:著作者
csv_post_parent:親ページID
+「カスタムフィールド」
「csv_」と付いている項目は、投稿、固定ページの最初から設定されている項目です。
加えて、csvファイルのサンプルにある「csv_」が付いていない「prefecture」「ward」「address」「access」「item」は、カスタムフィールドとして登録される項目です。
タイトル行に編集している項目名をカスタムフィールドの項目名として登録されます。
上記の項目は編集することができる項目名ですが、編集する必要がある項目だけを選んで csvファイルを作成すれば OKです。必要がない項目は指定する必要はありません。
例えば、「csv_post_title,csv_post_post」だけの csvファイルを作成することもでき、タイトルと本文のみを登録することができます。編集していない項目は、デフォルトの値が保存されます。
上記の csvファイルのサンプルもすべての項目を設定してはいませんが、全く問題はありません。
また、項目の順番も気にする必要はありません。タイトルと本文の順番は「csv_post_title,csv_post_post」でも「csv_post_post,csv_post_title」でも同じように登録されます。
システム上の必須の項目はありませんが、タイトルについては、なしで登録することは可能ですが、タイトルがない場合は何のデータか分からなくなります。プログラム上でエラーにはなりませんが、実際の運用上は必須項目と言えるでしょう。
また、すべての項目が空のレコードはインポートされません。
上記の通り CSV Importerで取り込む csvファイルを作る際はかなり柔軟な形で作ることが出来ます。
また、コメントについては、WordPressのオフィシャルサイトの CSV Importerの説明ページに Ver.0.3.1からインポートできるようになったと書いてありました。
ですが、現時点では詳しい情報の確認が出来ていませんので、確認が出来次第追記したいと思います。
実際に試してみるのが早いでしょう
この記事の説明を読めば難しい内容ではないことは伝わるとは思いますが、慣れは必要だと思いますので、何度か実験をしてみる方がいいでしょう。
実験をする際のテーブルは、本番のテーブルである必要はありませんので、テスト環境の WordPressを用意して、そこで何度か実験してみるのもいいでしょう。
また、本番環境に csvの取り込みをする際は、不具合があった場合などに元に戻す必要が出てくる可能性もありますので、事前に DBのバックアップを取っておく方がいいでしょう。
DBのバックアップに関しては、WP-DBManagerが役に立つと思いますので、まだ入れていない方はこちらもお試しください。
「WordPress データベースを管理するための強い味方のプラグイン WP-DBMANAGER」
2014.07.06 追記
バックアップに関しては、非常に有名なプラグイン「BackWPup」についての記事を「BackWPupでWordPressのDBもファイルもバックアップ」として 9記事にわたって書いていますので、あわせてそちらも参考にしてみてください。
CSVファイル加工についての説明
csvファイルをエクセルに貼り付ける場合、日付の項目や数値の項目がエクセルによって自動的に変換されてしまう場合がありますので注意しましょう。
私は、情報の加工はエクセルで行うこともありますが、テキストエディタでそのまま更新を行う場合もあります。
エクセルで表示するより見づらいことは確かなのですが、細かな修正をする場合はエクセルから csvファイルに出力する手間がないなどのメリットもあります。
ちなみに、テキストエディタ等で文字列を置換する場合、タブや行頭などを正規表現で表現して置換することもできます。その際の正規表現としては下記の様になりますので、参考までに。
タブ:\t
行頭:^ (アクサンシルコンフレックス、カレット)
行末:$ (ドルマーク)
正規表現で置換する場合は、「\t(タブ)」を「”,”」に置換し、行頭、行末を「”」に置換(追加)することでタブ区切りの文字列を、区切り文字として「,」を、囲み文字を「”」にした csvファイルを生成することができます。
CSV Importerを利用する際に起こった不具合
私が実際に CSV Importerを使っている際に発生した不具合についてご紹介することで、CSV Importerを使う際に同じようなところで悩まずに済むんじゃないかと思います。
・CSVファイルの容量が大きすぎる
PHPにはアップロードすることができるファイルサイズを設定する項目があります。
その設定は、サーバごとに違いますので、どのサイズまでは OKですとは言えませんが、サイズが大きなファイルをアップロードしようとするとエラーになる場合があります。
容量が大きい場合は、csvファイルを分割しするといいでしょう。CSV Importerは分割して取り込んでも先に取り込んでいたデータに影響を与えることはありません。
・項目の大文字、小文字の違い
「csv_post_type」を大文字の「POST」と入力していたことで、下記の画像のように「Unknown post type “POST”.」というエラーが出ました。
しかし、インポート処理で小文字にして取り込まれるため、結果的には問題なく表示されます。
逆に言うと、エラーがある場合はエラーメッセージが出るものの取り込み処理は実行されます。
・データは取り込めているが表示されない
csvファイルでデータベースに情報は取り込めているのですが、表示がされないという不具合もありました。
これについては原因も解決方法も分からないままですが、対処療法としては、一度管理画面から表示されない投稿データを表示し、保存を実行することで表示されるようになりました。
しかも、この不具合は、投稿データの全件が同じような状況になるのではなく、一部の投稿データだけがそのような状況になっていたため、一件一件表示されているかどうかの確認が必要でした。
データが数百件という件数になると対応は非常に面倒なことになります。
・カスタムフィールドのチェックボックスタイプの入力
カスタムフィールドのチェックボックスタイプの入力項目で、複数項目にチェックを入れている場合の登録方法が検証し切れていません。
これについては、不具合というよりは必要に迫られなかったために、実際にどのようにすれば登録できるのか検証していない、という状況です。
チェックボックスのフィールドであっても 1項目しかチェックを入れていない状況であれば、チェック項目の値を入れておけば問題なく取り込まれるのですが、複数にチェックを入れていた場合、どのようにして取り込めばいいかの確認がとれていません。
どのようにすればいいか、お分かりの方がいらっしゃればお教えいただけますと助かります。
リビジョンを削除し、データを軽くしよう
詳しくは「Export to Textで WordPressを csv出力」に書いていますが、リビジョンで不要なデータが多いと作業をする際、csvを取り込む際に余計な作業が増えてしまいますので、不要なレコードは削除しておきましょう。
また、リビジョンについては「Better Delete Revisionを使って WordPressのリビジョンを削除する方法」にまとめていますので、参考にしてください。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
Search RegexでWordPress投稿の文字列を検索・置換する使い方解説
WordPressの投稿テキストを検索、置換するプラグイン Search Regexの使い方の詳細解説です。
-
WordPressで WPtouchを入れたら「このウェブページにはリダイレクト ループが含まれています」と表示されてページが表示されなくなった
WPtouchを入れたら「このウェブページにはリダイレクト ループが含まれています」のエラーでページが表示されない。その解決法の解説です。
-
WordPressの Google XML Sitemapsで WebMaster Tools用の sitemap.xmlを生成
WordPressの Google XML Sitemapsで WebMaster Tools用の sitemap.xmlを生成する方法を説明しています。
-
seesaaからWordPressに引越。インストールなど必要な全てを解説
seesaaブログからWordPressへの引越し解説。他のブログにはないseesaaブログからcanonicalとリダイレクトの設定方法を実装!
-
ロリポップでWordPress+Basic認証で不具合発生!回避方法解説
ロリポップサーバでWordPressを使いBasic認証を設定する際には注意しないとWordPressが動かなくなる場合も!その回避方法を解説します。
-
WordPress・Contact Form7、MW WP Form共通 細かなデザイン調整方法
お問い合わせフォームプラグインの Contact Form7、MW WP Formにおけるラジオボタン、チェックボックスなどの見た目を調整する小技を紹介。
-
カスタムタクソノミーのターム一覧をウィジェットにショートコードで編集
カスタムタクソノミーに属するターム(カテゴリ)の一覧を wp_list_categories()関数+ショートコードでウィジェットに編集するサンプルプログラムです。
-
WordPressのカテゴリ単位・フォルダ単位でBasic認証を設定する方法
カテゴリ単位でBasic認証を設定する方法の解説。WordPressのカテゴリはフォルダの実態がないですが、実は簡単な方法でプラグインも使わずにBasic認証を設置できます。
-
Smart Update PingerでWordPressのPing・更新情報サービスを拡張する
WordPressの Ping機能、更新情報サービスのプラグイン Smart Update Pingerの使い方と問題点。
-
WordPress管理画面のメニューに項目を追加する方法解説
WordPressの管理画面のメニューに項目を追加する方法をサンプルソースを交えて解説します。