これは Craft CMS Advent Calendar 2018 19日目の記事です。
連載「サンプル制作で覚える Craft 3 サイト構築の基本」として、エントリデータのインポート編と同様に Feed Me プラグインによるエントリのインポートを行います。
ここでは、次の作業を行います。
- アセットの登録
- JSON データの準備
- フィードの設定、および、インポートの実行
インポート用の JSON データは「素材データ専用リポジトリ vol-13 ブランチ」にコミットしてあります。
なお、セクションタイプが シングル
のものは Feed Me プラグインでインポートできないため、公式デモサイトのデータを参考に別途入力してください。
アセットの登録
アセットを登録する3つの方法で紹介した「アセットインデックスを利用した一括登録」で、あらかじめ画像を登録しておきます。
グローバルナビゲーションから ユーティリティ
に移動後、サブナビゲーションから アセットインデックス
を選択します。メインカラムのチェックボックスは「カンパニーロゴ」と「サービスアイコン」だけを ON にして アセットインデックスを更新
ボタンをクリックします。
アセットインデックスの更新中は、プログレスバー
が表示されます。
更新が完了したら、グローバルナビゲーションから アセット
に移動し、サブナビゲーションの カンパニーロゴ
または サービスアイコン
をクリックして画像が追加されていることを確認します。
JSON データの準備
公式デモサイトの「ニュース」セクションに含まれるエントリデータの JSON をリポジトリに用意してあります。
「素材データ専用リポジトリ vol-13 ブランチの web/import/entry
ディレクトリに含まれるファイル」をローカル環境の web/import/entry
直下に配置してください。
その後、ブラウザからアクセスして内容を表示できることを確認します。
- https://craft3.dev/import/entry/locations.json
- https://craft3.dev/import/entry/services.json
- https://craft3.dev/import/entry/work.json
Feed Me プラグインでインポートする際は、ソースファイルに URL でアクセスできる必要があります。
フィードの設定、および、インポートの実行
グローバルナビゲーションから FeedMe
に移動後、「ニュース」エントリ(入力タイプ:リンク)
行の右側にある「歯車」アイコンをクリックします。下段にトグル表示されるオプション設定から Duplicate Feed
ボタンをクリックします。
フィードが複製されたら、下段の 「ニュース」エントリ(入力タイプ:リンク)
リンクをクリックします。
フィード設定の修正:「サービス」セクション
次の4箇所を修正してから Save & Continue
ボタンをクリックします。
ラベル | 値 |
---|---|
Name | 「サービス」エントリ |
Feed URL | https://craft3.dev/import/entry/services.json |
Section | サービス |
Entry Type | サービス |
フィードのオプション設定:「サービス」セクション
オプション設定に変更はありませんので、そのまま Save & Continue
ボタンをクリックします。特に明記しませんが、他のフィードを設定する際も次の画面に進んでください。
フィールドマッピングの設定:「サービス」セクション
次の項目を修正してから Save & Continue
ボタンをクリックします。
Feild | Feed Element |
---|---|
Expiry Date | <expiryDate> |
サービスアイコン | <serviceIcon> |
概要文 | <shortDescription> |
新しいセクション: セクション見出し | <Matrix/articleBody/newSection_sectionHeading> |
見出し: 見出し | <Matrix/articleBody/heading_heading> |
テキスト: テキスト | <Matrix/articleBody/text_text> |
テキスト: 位置 | <Matrix/articleBody/text_position> |
リード文: リード文 | <Matrix/articleBody/pullQuote_pullQuote> |
リード文: 位置 | <Matrix/articleBody/pullQuote_position> |
画像: 画像 | <Matrix/articleBody/image_image> |
画像: キャプション | <Matrix/articleBody/image_caption> |
画像: 位置 | <Matrix/articleBody/image_position> |
ギャラリー: 画像 | <Matrix/articleBody/gallery_images> |
引用: 引用 | <Matrix/articleBody/quote_quote> |
引用: 帰属 | <Matrix/articleBody/quote_attribution> |
引用: 位置 | <Matrix/articleBody/quote_position> |
サービスポイント: Heading | <Matrix/serviceBody/servicePoint_heading> |
サービスポイント: テキスト | <Matrix/serviceBody/servicePoint_text> |
サービスポイント: 画像 | <Matrix/serviceBody/servicePoint_image> |
その後、インポートを実行してください。
「ニュース」セクション同様、マッピングを設定するためのダミーエントリを JSON データの先頭に加えてあります。ただし、Expiry Date
(有効期限日)を過去に設定しているため、craft.entries.section('services')
の取得対象に含まれません。
フィード設定の修正:「ロケーション」セクション
「サービス」セクション
フィードを複製して、編集画面に移動します。
次の4箇所を修正してから Save & Continue
ボタンをクリックします。
ラベル | 値 |
---|---|
Name | 「ロケーション」エントリ |
Feed URL | https://craft3.dev/import/entry/locations.json |
Section | ロケーション |
Entry Type | ロケーション |
フィールドマッピングの設定:「ロケーション」セクション
次の項目を修正してから Save & Continue
ボタンをクリックします。
Feild | Feed Element |
---|---|
住所 | <address> |
お問い合わせ方法: ラベル | <Matrix/contactMethods/contactMethod_label> |
お問い合わせ方法: 値 | <Matrix/contactMethods/contactMethod_data> |
メールアドレス | <email> |
その後、インポートを実行してください。
フィード設定の修正:「ワークス」セクション
再度 「サービス」セクション
フィードを複製して、編集画面に移動します。
次の4箇所を修正してから Save & Continue
ボタンをクリックします。
ラベル | 値 |
---|---|
Name | 「ワークス」エントリ |
Feed URL | https://craft3.dev/import/entry/work.json |
Section | ワークス |
Entry Type | ワークス |
フィールドマッピングの設定:「ワークス」セクション
次の項目を修正してから Save & Continue
ボタンをクリックします。
Feild | Feed Element |
---|---|
大見出し | <heading> |
小見出し | <subheading> |
サービス種別 | <servicesPerformed> |
サムネイル画像 | <featuredThumb> |
背景色 | <backgroundColor> |
その後、インポートを実行してください。
グローバルナビゲーションから エントリ
に移動すると、ひと通りインポートできていると思います。
まとめ
ここでは Feed Me プラグインを利用して、セクションごとのエントリをインポートする方法を復習してみました。
似通ったフィールド構成のセクションがある場合、フィードの複製機能を利用することで設定が引き継がれ、最小限の調整で済むのが便利ですね。
次回は「サービス」および「ワークス」を対象に「セクション詳細ページ向けのテンプレート作成」を行います。