CSVファイルからのインポート
管理ページからカンマ区切りデータ(csv形式)をエントリー・カスタムフィールド、ユニットに変換してインポートすることができます。
実行は慎重に
データ数が多いインポート処理はサーバーへの負荷が高くなります。そのため、作業時間・タイミングに注意しておこなってください。
カテゴリーコードとエントリーコードの重複
既存のコンテンツとインポートされるコンテンツとの間で同じコードをもつエントリーやカテゴリーが存在する場合はコードの重複が発生します。その場合はコンテンツが正しく表示されない可能性がありますので、インポート後に管理ページから個別に修正してください。
インポートの仕様
CSVファイルの内容によって、以下のような仕様があります。
- CSVファイルに、カスタムフィールドの情報のみが含まれる場合は、エントリー情報は自動で作成されます。
- CSVに entry_category_id を指定することで、優先してそのカテゴリーにインポートされます。
- CSVに entry_id (エントリーID)フィールドを用意すると、同じエントリーIDのエントリーを上書きするようになります。 すべて、新規追加する場合は、 entry_id を指定しないでください。
- データとして改行を含みたい場合は、値をダブルクウォートで囲みます。
- 値の先頭を str-data_ にしたデータは、表計算ソフトで文字列として扱い、値の自動変換を防止します。取り込み時はこの先頭の文字は無視してインポートされます。数値や日付のデータにお使いください。
プロフェッショナル版以上
プロフェッショナルライセンス以上限定になりますが、 CSVの項目に entry_id がなく「*(アスタリスク)」から始まる項目名(1つ)がある場合、その項目をキーにして一意(unique)になるエントリーをアップデートします。
CSVに指定できるフィールド
| フィールド名 | フォーマット | 説明 | 例 | 指定なしの場合 |
|---|---|---|---|---|
| entry_id | 数値 | エントリーIDを指定。 | 123 | 新規eid |
| entry_code | 文字列 | コード(ファイル名)を指定。 | entry-123.html | 通常エントリ作成時と同様 |
| entry_sort | 数値 | 表示順を指定(新規追加のみ)。 | 1 | 通常エントリ作成時と同様 |
| entry_user_sort | 数値 | ユーザーを指定して一覧表示する時の表示順を指定(新規追加のみ)。 | 1 | 通常エントリ作成時と同様 |
| entry_category_sort | 数値 | カテゴリーを指定して一覧表示する時の表示順を指定(新規追加のみ)。 | 1 | 通常エントリ作成時と同様 |
| entry_status | open | close | draft | trash | ステータスを指定(open: 公開、close: 非公開、draft: 下書き、trash: ゴミ箱)のいずれかを指定。 | open | open |
| entry_title | 文字列 | タイトルを指定。 | テストエントリー | CSV_IMPORT-[eid] |
| entry_link | 文字列 | リンク先URLを指定。 | https://www.a-blogcms.jp/ | |
| entry_datetime | yyyy-MM-dd H:mm:ss | 日付を指定。 | 2018-12-06 15:08:01 | インポート時の日時 |
| entry_start_datetime | yyyy-MM-dd H:mm:ss | 公開日時を指定。 | 2018-12-06 15:08:01 | 1000-01-01 00:00:00 |
| entry_end_datetime | yyyy-MM-dd H:mm:ss | 掲載期限を指定。 | 2018-12-06 15:08:01 | 9999-12-31 23:59:59 |
| entry_posted_datetime | yyyy-MM-dd H:mm:ss | 作成日を指定。 | 2018-12-06 15:08:01 | インポート時の日時 |
| entry_updated_datetime | yyyy-MM-dd H:mm:ss | 更新日を指定。 | 2018-12-06 15:08:01 | インポート時の日時 |
| entry_hash | 文字列 | ハッシュ値を指定(新規追加のみ)。 | 通常エントリ作成時と同様 | |
| entry_summary_range | 数値 | ユニットの「続きを読む」の位置を指定(例: 3 -> 上から3番目のユニットを一覧で出力)。 | 3 | |
| entry_indexing | on | off | インデキシング(一覧に出力するかどうか)を設定(on: 出力する、off: 出力しない)。 | on | on |
| entry_members_only | on | off | 会員限定エントリーを設定(on または、off) | on | off |
| entry_primary_image | 数値 | メイン画像のユニットIDを指定。 | 123 | |
| entry_category_id | 数値 | カテゴリーIDを指定。 | 1 | |
| entry_user_id | 数値 | エントリー所有者のユーザーIDを指定。 | 1 | インポート実行者のUID |
| entry_tag | 文字列/文字列/文字列 | エントリーのタグを指定。 | aaa/bbb/ccc | |
| entry_sub_category | カンマ区切り数値 | サブカテゴリーの数値をカンマ区切りで指定(必ずダブルクウォートで囲むこと)。 | "1,2,3" | |
| geo_lat | 数値 | エントリーの経度を指定。 | 136.761737 | |
| geo_lng | 数値 | エントリーの緯度を指定。 | 35.424289 | |
| geo_zoom | 数値 | エントリーのズームを指定。 | 10 | |
| unit@タグセレクト[数値] | 文字列 | テキストユニットの追加。 タグセレクト: テキストタグセレクトで設定できるもの [p, h2, h3, ul, markdown, none....] []の中の数値: ユニットの順番を指定 |
テストユニット | |
| unit@block-editor[数値] | HTML文字列 | ブロックエディターユニットの追加 []の中の数値: ユニットの順番を指定 |
<p>ブロックエディターユニット</p> | |
| カスタムフィールド変数 | カスタムフィールド としてインポートされます。インポート先のフィールド仕様にあった値を設定ください。 また、保存されるカスタムフィールドの値は、自動的に検索対象となります。 |
※ エントリーの追加や更新が混ざっている CSV でインポートする際には、新規追加のエントリーID は 空ではなく -1 を設定 ください。
CSVファイルからのインポート手順
- インポートするカンマ区切りデータ(csv形式)を用意します。
- ログインをして管理ページのインポートにアクセスします。(図1)
- インポート先のブログを確認し、インポート先のカテゴリーを必要に応じて選択してください。(図2)
- インポート元になるCSVファイルを選択します。
- [インポートを実行する]ボタンをクリックすると、インポートを実行します。
CSVファイルの例
"entry_title","entry_code","zip","tel","address","unit@p[1]","unit@markdown[2]" "アップルップル","csv-1","450-0002","052-485-8577","名古屋市中村区名駅3-18-5 モンマートビル5F","1つ目のユニット","## 見出し2" "あっぷるっぷる","csv-2","000-0000","000-000-0000","指定したentry_titleやentry_codeの通りにエントリーが生成されます", "1つ目のユニット","### 見出し3" "appleple","csv-3","111-1111","111-111-1111","フィールド名は任意の英数字で指定できます","1つ目のユニット"," ## 見出し2 ダブルクウォートで囲むことで改行できます。 - リスト1 - リスト2 - リスト3 "
- entry_title:エントリーのタイトル
- entry_code:エントリーのコード(既存のエントリーとの重複を避けユニークな文字列を指定してください。拡張子はいりません。)
- zip:カスタムフィールド、郵便番号として利用
- tel:カスタムフィールド、電話番号として利用
- address:カスタムフィールド、住所として利用
- unit@[1] : 1番目のテキストユニット
- unit@markdown[2] : 2番目のマークダウンテキストユニット
特殊な入力形式
少し複雑な項目である、画像やカスタムフィールドグループのインポートをする方法を紹介します。
メディアのカスタムフィールド
メディアのIDを指定して、メディアのカスタムフィールドをインポートします。
ポイントは「フィールド名」のカラムと「フィールド名@media」のカラム両方に「メディアID」を設定することです。
"entry_title","hoge","hoge@media"
"メディアのフィールドテスト",41,41
"メディアのフィールドテスト2",36,36ブロックエディターのカスタムフィールド
登録したいカスタムフィールドのフィールド名の後ろに 「@block-editor」をつけることでカスタムフィールドのブロックエディターをインポートすることができます。
ブロックエディターにて対応しているHTMLの範囲のみ入稿することが可能です。すべてのHTMLの記法に対応しているわけではないため、ご注意ください。利用できるフォーマットはブロックエディターの基本ブロックと同様です。
"entry_title","hoge@block-editor"
"メディアのフィールドテスト","<p>ブロックエディターフィールドの値</p>"
"メディアのフィールドテスト2","<p>ブロックエディターフィールドの値</p>"画像のカスタムフィールド
画像のカスタムフィールドは archivesディレクトリに画像を別途アップロードする必要がありますが、 CSVにアップロードされたパスを書くことで、CSVインポートすることができます。
画像のカスタムフィールドには、多くの関連変数があります。すべて指定しなくてもよいですが、少なくとも「フィールド名@path」は指定しましょう。
"entry_title","hoge@path","hoge@x","hoge@y","hoge@alt"
"画像のフィールドテスト","001/202012/4e82948f2a5ce6e6a856d61bf0a1057473cf8997e3c7e7f2da9faa0019935d0e.png",300,169,"代替テキスト"
"画像のフィールドテスト2","001/202012/4e82948f2a5ce6e6a856d61bf0a1057473cf8997e3c7e7f2da9faa0019935d0e.png",300,169,"代替テキスト"指定可能な項目
カラム名 | 説明 |
|---|---|
hoge@alt | 代替テキストを設定します |
hoge@largePath | 大きいサイズの画像のパスを指定します |
hoge@largeX | 大きいサイズの画像の横幅を指定します(整数) |
hoge@largeY | 大きいサイズの画像の縦幅を指定します(整数) |
hoge@largeFileSiz | 大きいサイズの画像のファイルサイズをバイト数で指定します(整数) |
hoge@path | 画像のパスを指定します |
hoge@x | 画像の横幅を指定します(整数) |
hoge@y | 画像の縦幅を指定します(整数) |
hoge@fileSize | ファイルサイズをバイト数で指定します(整数) |
hoge@squarePath | 正方形画像のパスを指定します |
hoge@squareX | 正方形画像の横幅を指定します(整数) |
hoge@squareY | 正方形画像の縦幅を指定します(整数) |
hoge@squareFileSize | 正方形画像のファイルサイズをバイト数で指定します(整数) |
hoge@tinyPath | 小さいサイズの画像のパスを指定します |
hoge@tinyX | 小さいサイズの画像の横幅を指定します(整数) |
hoge@tinyY | 小さいサイズの画像の縦幅を指定します(整数) |
hoge@tinyFileSize | 小さいサイズの画像のファイルサイズをバイト数で指定します(整数) |
ファイルのカスタムフィールド
ファイルのカスタムフィールドは archivesディレクトリにファイルを別途アップロードする必要がありますが、 CSVにアップロードされたパスを書くことで、CSVインポートすることができます。
ファイルのカスタムフィールドには、多くの関連変数があります。
"entry_title","hoge@path","hoge@baseName","hoge@fileSize","hoge@originalName"
"ファイルのフィールドテスト","001/202012/aaa.pdf","aaa.pdf",347794,"サンプル.pdf"
"ファイルのフィールドテスト2","001/202012/bbb.pdf","bbb.pdf","サンプル2.pdf"指定可能な項目
カラム名 | 説明 |
|---|---|
hoge@path | ファイルのパスを指定します |
hoge@baseName | ファイル名を指定します |
hoge@fileSize | ファイルサイズをバイト数で指定します(整数) |
hoge@originalName | アップロード時のファイル名を指定します |
カスタムフィールドグループ
カスタムフィールドグループは、複数の値を入れないといけないので、複雑ですがCSVでインポートすることができます。
複雑なので、例をだして、それにそって説明していきます。
例の仕様
「testGroup」というカスタムフィールドグループ名
「testGroup」は2つのテキストフィールドを持つ(inputA, inputB)
今回入力したい値は2レコードで、値は下の画像のような値をいれたい
例の仕様を満たすCSV
上記の仕様を満たすCSVは以下のようになります。
"entry_title","@testGroup[1]","@testGroup[2]","inputA[1]","inputA[2]","inputB[1]","inputB[2]"
"フィールドグループのテスト","inputA","inputB","aaaaa","AAAAAA","bbbbbb","BBBBBB"ポイント
まず「グループ名」を @グループ名[添字] という形で、グループ内のフィールド数分用意します。
今回は、inputA と inputB の2つ なので、 "@testGroup[1]","@testGroup[2]" を追加しています。
この項目の値には、グループ内のフィールド名を指定します。今回の場合は inputA, inputB になります。
グループ名とフィールド名が指定できたら、グループ内のフィールド値を添字を使って、 レコード数分 指定していきます。 今回は、2レコードなので、"inputA[1]","inputA[2]","inputB[1]","inputB[2]" を追加しています。
この項目の値は、それぞれフィールドに入れたい値を設定することになります。
* 添字は「1」から始まるのでご注意ください。
