すべてのコレクション
よくある質問
CMS
CMS記事(アイテム)ごとに異なる外部フォームを設置する方法
CMS記事(アイテム)ごとに異なる外部フォームを設置する方法

STUDIOサイトでCMS記事(アイテム)ごとに異なる外部フォームを設置する方法を詳しく解説します。表示条件を利用してCMS記事(アイテム)ごとにフォームを非表示にする方法もご紹介します。

Saika avatar
対応者:Saika
一週間前以上前にアップデートされました

CMS記事ごとに異なる外部フォームを設置する方法

この記事では、CMSプロパティを活用して、CMS記事(アイテム)ごとに異なる外部フォームを設置する方法を解説します。

具体的にはCMSアイテムにテキストプロパティを追加し、フォーム固有のIDを設定します。そしてそのプロパティを動的ページの埋め込みコード側で参照することで、アイテムごとにフォームを表示できます。また、表示条件を用いればIDの設定がないアイテムではフォームを非表示にすることも可能です。

本記事ではHubSpotフォームを使用例としてご紹介します。

※CMSプロパティをコード内で使用すると、iframeタイプからsandboxタイプに変化します。この変化により、HubSpotで設定・利用できる機能が動作しなくなる場合があります。

設定手順

  1. CMSアイテムへのテキストプロパティ追加

    記事モデルのCMSアイテムにテキストプロパティを追加します。

    スクリーンショット:CMSアイテムへのテキストプロパティを追加する様子。

  2. テキストプロパティへフォームIDを追加

    フォームサービスから取得した埋め込みコード内のIDをコピーし、プロパティに追加します。 例えば、以下のコードではformIdをプロパティに追加します。

    <script charset="utf-8" type="text/javascript" src="[//js.hsforms.net/forms/embed/v2.js](<https://js.hsforms.net/forms/embed/v2.js>)"></script> <script> hbspt.forms.create({ region: "na1", portalId: "23384602", formId: "this-is-a-sample-id" }); </script>

    スクリーンショット:テキストプロパティへフォームIDを追加する様子。

  3. 動的ページへのEmbedボックス配置

    エディタへ移動し、動的ページにEmbedボックスを配置します。

    スクリーンショット:動的ページにEmbedボックスを配置する様子

  4. 埋め込みコードの入力

    フォームサービスから取得した埋め込みコードをEmbedボックスの埋め込みコード欄に入力します。

    スクリーンショット:埋め込みコードにコードを入力する様子。

  5. コード内IDを削除とCMSプロパティの追加

    追加したコードのformId を削除し、CMSプロパティの「フォームID」を追加します。これにより、ページごとにIDが自動的に切り替わり、表示されるフォームが変化します。

    スクリーンショット:コードのID削除とCMSプロパティ追加の手順を示す画像

  6. Embedボックスへの表示条件設定

    ※IDの設定がないボックスを非表示にする必要がない場合はこの手順はスキップしてください

    CMSプロパティにIDが設定されていない場合、Embedボックスを非表示にするための表示条件を設定します。

    Embedボックスを選択した状態で、右パネルを開き、表示条件で「フォームID」「 is set」を設定します。

    スクリーンショット:Embedボックスの表示条件を設定する様子。

  7. 表示のチェック

    サイトのライブプレビューで表示と動作を確認し、問題なければ公開・更新します。

こちらの回答で解決しましたか?