自分が運営しているサイトで別のCMSで管理してたサイトがある。それをWordPressに移行するためのツールは構造上の問題か、不可能なのか、そういったツールは存在しない。
そんなときに考えるのはデータベースに入っているデータをCSVとして取り出せば、なんとかなるんじゃ、と考えた。
CSV経由でデータを取り込む方法はいくつか考えられるが、一番自分にとって手軽そうな方法としてツールのインポートに「CSV」という項目を増やしてインポートしてしまう方法を選んだ。これだとCSVで商品データやその他役に立つデータもインポート出来るので応用の幅が広がるだろう。
参考にしたサイトはもしもドロップシッピング スタートアップパックの次に読むブログ: もしもの商品データCSVファイルから個別商品ページを量産する方法というブログより。
ああ、ドロップシッピングでもそうやって使うんだーと勉強になりました。
さて、今回やりたいことはCSVをインポートする方法だが、このサイトの前のページに載っているImporting Posts from CSV file into WordPress « Zack Prebleから「csv2 post.」をダウンロードするところから始まる。
「/wp-admin/import/」に解凍されたファイルをアップすると、上の写真のように「CSV」でインポートする項目が現れる。
さて、ここからが問題です。
このツールをつかってインポートしやすいようにするために、CSVデータを整形しておく必要があります。
プラグインのページによるとCSVの加工後のイメージが下記のようになれば良いようです。
wp_title|wp_post_date|wp_category|wp_content|field1|field2|field3
My Post Title|2007-12-31 23:59:59|fun-stuff|Long post text|value|value|valaue
Another Post|2008-01-31 23:59:59|fun-stuff|Long post text|value|value|valaue
お気づきのように、見慣れているカンマ区切りのCSVではなく「|」区切りのCSVデータです。これは最後にCSVファイルに対して「,」(カンマ)から「|」に置換すれば良いでしょう。
さて、そこにたどり着く前に、Excelなどで(ボクの場合はMacの表計算ソフトNumbersで)整形します。
まず一番上の行にはフィールド名が入っていると思いますが、ここが最終的にWordPressのタイトルや投稿日時、投稿内容、カテゴリーなどになればいいのです。その他の項目「field3」は無くてもとりあえず動作しました。
これらの最低限の項目にインポートしたいデータがまとまれば良いわけです。
これはボクのデータの事例ですが、それぞれにそれぞれのデータが割り当てられるようにしています。この場合、日付が入っている場所には本来カテゴリーが入るので、カテゴリーを入れ、日付はその左のwp-_post_dateの列に移動させます。
例えば、投稿本文の中にCSVでいう3つの列のデータを入れたい場合は、ひとつにマージしてしまえば良いです。これは表計算ソフトの足し算のの結果を入れるのと似た様な感じですが、正確には結合させたい複数のセルを選択して、CONCATENATEという関数を実行させれば良いです。Excelにはあるようですが、MacにもそのCONCATENATE関数があったので、ボクもなんとかクリアしています。ただ、この関数だとそれぞれのセルを参照して結合しているにすぎないので、元のセルを削除出来ません。
ここで一旦にCSVで書き出します。元ファイルは後の修正のために別名つけるなどして丁寧に保存しておくのが良いでしょう。
書き出されたCSVはもう一度Excelなどの表計算ソフトで開きます(ここ重要)。
すると結合された文字列は、関数ではなくちゃんと結合された文字列になっているので、参照元の列は削除しても良い、ということになります。
というわけで、余分なデータを消して、純粋なCSVデータが出来上がります。
最後に、最初の方にも述べたように、テキストエディタで一度開いて「,」(カンマ)から「|」に置換して、これをWordPressのツール→インポート のCSVからアップロード&読み込ませてインポートを実施させます。
これが大まかな流れです。
実はこのCSVがうまくいかないことによっての不具合は多々発生します。EXCELでいうセル内改行とか気づかぬところでおかしなことになっているので、それらを解決してからインポートして見てください。
コメント
はじめまして。
こちらを参考に作ってみたところ、インポートをうまく出来たんですが、タイトル部分が半英数は表示され、かな漢字大英数字のみ空白になってしまいます。
りぃさん>
こんにちは。はじめまして。
さて、要は全角文字がうまくいっていないことだと思います。おそらく文字コードの問題があると思います。
もし、Excelで開かれて編集されているなら(バージョンの問題もあるかもしれませんが)、保存されたデータが「Shift-jis」という文字コードになっている可能性があります。
Wordpressにインポートする前にそのCSVファイルをひらいて、「UTF-8」で保存しなおしてみてから、最挑戦してみてください。
早速ありがとうございます。
Microsoft Office Excel 2007を利用していますが、文字コードの変更方法を教えてもらえないでしょうか?
宜しくお願いします。
Microsoft Office Excel 2007の操作方法は分かりかねますが、Windowsユーザであれば、テキストエディタの秀丸もしくはEmEditorなどで、そのCSVファイルをひらいて「別名で保存」の時に、文字コードを指定して保存すれば、大丈夫なはずです。