WordPressでCSVのインポートがうまくいかない人へ《躓いたポイント&解決策ベスト5》Really Simple CSV Importer
こんにちは、急に技術系記事です。
以前、WordPressでのCSVのインポートをしました。その時躓いたポイントがあり、無事解決もできましたので、その備忘録です。
“Really Simple CSV Importerを使って、WordPressに大量の投稿データをインポート!”あなたもきっとうまくいく!
WPではないサイトの文章や画像URLのデータをCSVではき出して、それをExcelで整理してWP用にCSVデータを作り変え、プラグイン『Really Simple CSV Importer』でインポートする作業です。
こちらを参考に作業しました。
その際、いくつか躓いた箇所がありました。
CSVのインポートで躓いた5項目
- エクスポートしたCSVファイルがExcelで文字化けする&セルで分けられていない
- Advanced Custom Fieldsで作成したカスタムフィールドの指定の仕方がわからない
- ラジオボタンやチェックボックス、画像の入力方法がわからない
- Excelで作成したCSVがインポートできない
- 日本語が入力できない・認識されない
これらの問題を解決するための解決策をまとめてみます。
(1) エクスポートしたCSVファイルが文字化けする&セルで分けられていない
→ テキストで開いてからExcelに表示 → Excel>データで区切り位置を修正
まずはphpMyAdminでエクスポートしたCSVファイル。
これをExcelで開こうとすると文字化けするので、テキストエディットなどで開いたファイルをコピーしエクセルに貼り付けorテキストファイルで保存し直してエクセルで開きました。
このファイルでは、エクセル上だと区切りがセミコロンやダブルクォーテーションでくくられていると思いますが、これをセルに直したいと思います。
A列クリック全選択 > データ > 区切り位置 > 次へ > セミコロンにチェック > 完了 で、セルに直すことができます。
(2) Advanced Custom Fieldsで作成したカスタムフィールドの指定の仕方がわからない
→ そのままフィールド名を書いて指定
一行目には、インポートする情報の項目を並べていきます。
参考にしたサイトなどを見ながら、記事タイトルやカテゴリースラッグを入力していきます。
それだけでなく、Really Simple CSV Importerの凄いところは、Advanced Custom Fieldsで作成したカスタムフィールドの入力ができるところです。
ですが、どこを見ても指定方法に{custom_field}と書いてあるだけで、どうすれば認識されるのかよくわかりませんでした…。
フィールド名が「menu」なら、{menu}と書けばいいのか?
それとも{custom_field}と入力するのか?…と色々試行錯誤しましたが、なにも考えることはありませんでした笑
そのままフィールド名を書くだけでいいのです!
「menu」と一行目に指定したら、そこの列に、「焼きそば」「お好み焼き」…など値を入力していけば、作成したフィールドに反映されます。
(3) ラジオボタンやチェックボックス、画像の入力方法がわからない
→ 値を入力する
今後の更新のために、Advanced Custom Fieldsで、ラジオボタンやチェックボックス、画像を挿入させるフィールドを作成しており、今までのファイルをそこに表示させつつも、このフィールドを使用したい場合があると思います。
その時にCSVで入力するのは、設定した値で大丈夫です。
■ ラジオボタンやチェックボックス
選択したい・表示させたい値を記入(カスタムフィールド作成の際の、左側が値)
■ 画像 画像URLを記入
(カスタムフィールド作成の際に、返り値を画像URLにする)
これは、インポート後の投稿ページでは選択されませんが、ページ上では表示させることができるという荒技です。
ただ単に、ページに入力した
<?php the_field("フィールド名", $post->ID); ?>
で、指定したフィールド名に対し、入力した値を呼び出しているだけなので、もっと良い方法があれば教えて頂きたいです! ページ上に表示させる上では、これで表示されますよ!
(4) Excelで作成したCSVがインポートできない
→ Windows環境でup → Google『スプレッドシート』でup
調べてみると良く出てくるのが文字コードをUTF-8に直す、ということですが、私のやり方が悪いのか、Macでは表示されず…
思い返せばExcelで作業し、最終的にできたデータをCSVで保存しようとしたら、「このブックには選択したファイル形式で保存した場合に動作しない、または削除される可能性のある機能が含まれています」と警告が出ていました。
試しにWindows環境でExcelを使用しCSVで保存、インポートしたところ、そういった警告もなく、無事表示されました。
Mac環境でインポートしたい場合は、Googleスプレッドシートを使って、ファイルを開くか、コピペをしましょう!
作成 > スプレッドシートを選択。 ファイル > 形式を指定してダウンロード > カンマ区切りの値(.csv) で、作成したCSVのファイルがダウンロードされます。 これをインポートすると、きちんと反映されますよ!
(5) 日本語が入力できない・認識されない
→ \(逆スラッシュ)を日本語の前に入力する
インポートした時に、なぜか日本語のデータが全く認識されませんでした。
しかし、たとえば入力する値の一番前に半角文字が来た場合はなぜか日本語が表示されます。
そこで、色々な記号を試したところ、逆スラッシュに辿り着きました!
これを全ての日本語の値の前に入力すれば、記事では逆スラッシュは表示されずに、きちんと内容だけが表示されます!
逆スラッシュは、alt+¥で入力できますよ。
とはいえ、もう値はすべて入力してあるのに、今更膨大なデータに\を追加なんて…!という状態でした。
その対策として、列を二つ作成し、一つに\(逆スラッシュ)を入力。
二つめには、=A2&B2のように、逆スラッシュを入力したセルと、表示させたい日本語を入力したセルを合わせます!
すると、日本語の前に全て\が入った値が出てきます。
が、あくまで入力した内容はセルとセルを合わせた数式のため、関数には式が表示されたままです。
そこで、出てきた値をコピーし、テキストエリアなどExcelの効果の効かないところにペーストして、またコピーしたものをExcelに貼り付ければ、きちんと関数にも「\日本語」で合体した値が表示されます!
少々手間が掛かるアナログな方法ですが、良かったら参考にしてください。
まとめ
- エクスポートしたCSVファイルがExcelで文字化けする&セルで分けられていない
→テキストで開いてからExcelに表示
→Excel>データで区切り位置を修正 - Advanced Custom Fieldsで作成したカスタムフィールドの指定の仕方がわからない
→そのままフィールド名を書いて指定 - ラジオボタンやチェックボックス、画像の入力方法がわからない
→値を入力する - Excelで作成したCSVがインポートできない
→Windows環境でup →MacはGoogle『スプレッドシート』でup - 日本語が入力できない・認識されない
→\(逆スラッシュ)を日本語の前に入力する
以上が、CSVのインポートがうまくいかなかった点と、解決策です。
Really Simple CSV Importerを使用してのお話ですが、単純にCSVを作成するときやインポートするときにも使えるかもしれません。
同じように困っている方のお役に立てればと思います!
また、他にも良い方法があればぜひ教えてください!よろしければランキングもお願いします。