Drupal: Feedsを用いた一括登録と更新の例
概要
以下の記事で、Strapiを用いたネストされたフィールドに対する検索方法を調査しました。
今回は同様のことをDrupalで行うにあたり、その準備である、コンテンツの一括登録及び更新方法に関する備忘録です。上記の記事と類似の構造を設定するために、BookとAuthorという2つのコンテンツタイプを対象にします。
content typeの作成
BookとAuthorのcontent typeを作成します。
Author
以下、Authorの例です。
id, name, hobbyというフィールドを作成します。feedsは後から追加されるものなので無視してください。
Book
Bookのフィールドとして、authorsを作成し、Cotentをフィールドとして選択します。
Reference typeのcontent typeとしてAuthorを選択しました。
feedsの設定
一括登録のための設定を行います。
Author
以下にアクセス
/admin/structure/feeds
csvをアップロードして登録するため、以下のように設定します。
フィールドNAMEとHOBBYを以下のように設定します。titleは必須項目としていたため、設定しています。またifをUniqueな項目としています。
Book
Bookに関する注意点として、authorsは他のコンテンツタイプのidを指定するようにしています。具体的には、以下の図のように、Reference byに「node.field_id」を指定しています。
feedsによる一括登録
/admin/content/feed
Author
先に作成したcsvファイルアップロードすることで、以下のように登録が完了します。
Book
authorsに正しくcontent typeがauthorのコンテンツが紐付けられています。
(参考)Feedsを用いた更新
authorのfeeds設定を設定するために、以下にアクセス
/admin/structure/feeds/manage/author?destination=/admin/structure/feeds
以下のように、「Update existing content items」で「Update existing content items」とすることで、更新を行うことができました。「field_id」をUniqueとしたため、この値に基づいて、新規・更新が判定されます。
まとめ
Feedsを用いた一括登録と更新、および異なるコンテンツタイプとの関連付けを行いました。参考になりましたら幸いです。
Discussion