メディアファイルを同時に登録する
プロフェッショナルライセンス以上では、CSV のインポート時にメディアのカスタムフィールドと、ブロックエディター本文で参照する画像・ファイルを自動登録できます。この機能は Ver. 3.2.36 以降で利用できます。
インポートするファイルは、あらかじめ取り込み元のディレクトリ(既定は archives/csv-import/source/)に配置します。ディレクトリは .env で変更できます(後述)。CSV にはこのディレクトリからの相対パスを指定してください。HTTP(S) URL を指定しても外部サーバーからは取得せず、URL のパス部分をローカルファイルのパスとして扱います。
メディアのカスタムフィールドでは、フィールド名の列と フィールド名@media の列をセットで用意します。既存メディアを指定する場合は、両方の列にメディアIDを指定します。新しいファイルを登録する場合は、@media の列にローカルファイルのパスを指定します。
archives/csv-import/source/images/photo.jpg を登録する例です。
"entry_title","photo","photo@media"
"新しいメディアを登録する","","images/photo.jpg"
ブロックエディター本文は unit@block-editor[1]、カスタムフィールドは フィールド名@block-editor の列にHTMLを指定します。data-mid のない画像・ファイル参照は、src または href のローカルパスからメディアとして登録されます。
"entry_title","unit@block-editor[1]"
"画像を含むエントリー","<p>説明</p><img src=""images/photo.jpg"" alt=""写真"">"
取り込み元ディレクトリとファイルサイズの上限を変更する
取り込み元のディレクトリと、取り込めるファイルサイズの上限は、CMS を設置したディレクトリにある .env で変更できます。
| 環境変数 | 説明 | 未設定時 |
CSV_IMPORT_MEDIA_LOCAL_PATH_BASE | メディアの取り込み元として許可するディレクトリ。index.php のあるディレクトリからの相対パス、または絶対パスで指定します。このディレクトリ配下のファイルだけを取り込みます。 | archives/csv-import/source/ |
CSV_IMPORT_MEDIA_MAX_FILESIZE | 取り込めるファイルの最大サイズ(バイト) | 52428800(50MB) |
CSV_IMPORT_MEDIA_LOCAL_PATH_BASE=archives/import-files/
CSV_IMPORT_MEDIA_MAX_FILESIZE=104857600
取り込み元のディレクトリは、あらかじめ作成しておいてください。上限を超えるファイルは取り込まれず、メディア取り込みの失敗として記録されます。
ドライランと失敗行の再取込
インポート実行前にドライランを選ぶと、データベースやメディアを変更せず、保存される見込みの新規追加・更新件数、登録・更新エラー、メディア取り込み失敗を確認できます。
登録・更新エラーの行と、再試行できるメディア取り込み失敗の行は、失敗理由(acms_error_reason)を含むCSVとしてダウンロードできます。修正後、そのCSVを再度インポートしてください。失敗行CSVのダウンロードはインポート実行後24時間利用できます。
"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
"
特殊な入力形式
少し複雑な項目である、画像やカスタムフィールドグループのインポートをする方法を紹介します。
メディアのカスタムフィールド
メディアの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」から始まるのでご注意ください。