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ファイルからのインポート手順

  1. インポートするカンマ区切りデータ(csv形式)を用意します。
  2. ログインをして管理ページのインポートにアクセスします。(図1)
  3. インポート先のブログを確認し、インポート先のカテゴリーを必要に応じて選択してください。(図2)
  4. インポート元になるCSVファイルを選択します。
  5. [インポートを実行する]ボタンをクリックすると、インポートを実行します。

(図1)インポート管理トップ

(図1)インポート管理トップ

(図2)CSVインポート画面

(図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」から始まるのでご注意ください。