# ページに独自セクションを追加したのですが、、、

**URL:** <https://community.shopify.com/t/topic/19093>\
**Category:** 技術的なQ＆A\
**Created:** [August 27, 2020, 4:34am UTC](https://community.shopify.com/t/topic/19093 "2020-08-27T04:34:26Z")\
**Posts on this page:** 4\
**Page:** 1

## AI-generated summary

独自セクションを複数ページで使い回したところ、あるページで入力した内容が別ページにも同じように表示される現象についての確認。結論として、これはセクション設定値がテーマ内で共通的に保存されることによる想定動作で、Schema（Content Schema）の考え方に沿った挙動と説明された。

提示された対応案は主に2つ。
- 想定される方法: ページごとに必要なセクションを増やす
- 応用案: ブロックにページ識別子（例: page.handle）を入力し、Liquidのfor文やif文で一致したものだけ表示する

補足として、Liquid内では `page.handle` や `template` などの変数を使って、同一セクションでも表示ページに応じた分岐は可能とされた。ただし、提案コードは未検証で、データ量が多い今回のケースでは運用がやや難しいとの判断。

最終的に、質問者はページごと・リストごとに対応するセクションを手動で増やす方法を採用することにし、実質的に解決している。

<div class="post-metadata">

**Author:** ![freshallstar](https://avatars.discourse-cdn.com/v4/letter/f/a698b9/32.png) [@freshallstar](https://community.shopify.com/u/freshallstar)\
**Post date:** [August 27, 2020, 4:34am UTC](https://community.shopify.com/t/topic/19093/1 "2020-08-27T04:34:26Z")

</div>

下記サイトを参考にして、ページに独自セクションを追加しました。

[https://note.com/osamuiwasaki/n/n1c8813bab083](https://note.com/osamuiwasaki/n/n1c8813bab083)

「Shop List1」というページで独自セクションに情報を入力しました。

次に、「Shop List2」という別のページを作成して、そのページに「Shop List1」でも利用している独自セクションが記載されているtemplateを割り当てました。

すると、「Shop List1」で入力した情報が、「Shop List2」のページにも表示されるのですが、これはSchemaの仕様なのでしょうか？

一つのセクションを汎用的に他のページにも利用したいのですが、良い方法はありますでしょうか？

---

<div class="post-metadata">

**Author:** ![Jizo\_Inagaki](https://yyz1.discourse-cdn.com/shopifyforum/user_avatar/community.shopify.com/jizo_inagaki/32/149480_2.png) [@Jizo\_Inagaki](https://community.shopify.com/u/Jizo_Inagaki)\
**Post date:** [August 28, 2020, 8:54am UTC](https://community.shopify.com/t/topic/19093/2 "2020-08-28T08:54:31Z")

</div>

セクションは、各セクションごとに情報を保存し、その内容を他の場所でも出力するためのものだと思いますので、この場合セクションを増やすのが想定された方法かと思います。

この件に関しましては以下が該当するかなと思います(少々自信ありません)。

[https://shopify.dev/docs/themes/sections/content-schema](https://shopify.dev/docs/themes/sections/content-schema)

> The Content Schema is a formula for representing online store content. Its purpose is to standardize how themes model merchant-generated content in [content sections](https://shopify.dev/docs/themes/sections/content-sections), enabling content made with a section of one theme to be rendered by a section of a different theme. It also serves to provide a consistent editing experience to merchants.

上記を踏まえた上で「どうしても一つのセクションに作った各ブロックを出しわけたい」というのであれば以下の方法などが思い浮かびます。  
※試作したわけではないので未検証です

- テキスト欄を一つ追加してそこにShop List1やShop List2などと入力し、for文内で入力した値とpage.handleなどを比較し合致すれば表示させる

基本的に「for文の中で任意のブロックを特定し表示させる」という動作ができればよいので、上記以外でも分岐条件さえ作れれば動作するはずです。

一応サンプルコードは書いてみましたが、こちらも未検証のためその点ご了承ください。

```markup

 {% for block in section.blocks %}
  {% if block.settings.handle == page.handle %}
   - {% comment %} 中略 {% endcomment %}
   
  {% endif %}
 {% endfor %}

{% schema %}
{
 {% comment %} 中略 {% endcomment %}
      "setting":[
       {
        {% comment %} 中略 {% endcomment %}
        {
         "id":"handle",
         "type":"text",
         "label":"Page Handle"
        }
       {% comment %} 中略 {% endcomment %}
{% endschema %}

```

なお、コードに関しまして最も確実なのは記事を書いた方に質問することかなと思いますので、noteの作者にご相談されることもお勧めします。

---

<div class="post-metadata">

**Author:** ![freshallstar](https://avatars.discourse-cdn.com/v4/letter/f/a698b9/32.png) [@freshallstar](https://community.shopify.com/u/freshallstar)\
**Post date:** [August 28, 2020, 12:10pm UTC](https://community.shopify.com/t/topic/19093/3 "2020-08-28T12:10:53Z")

</div>

ありがとうございます！

> セクションは、各セクションごとに情報を保存し、その内容を他の場所でも出力するためのものだと思いますので、この場合セクションを増やすのが想定された方法かと思います。

理解いたしました。そういうことなのですね。Shopifyでできることとできないことというのが、だんだんと分かってきたような気がします。

ご提示いただいたアイデアですが、今回のケースではすこし無理がありそうだったので、（Shoplist1、Shoplist2…各リストに入るデータが多いので）

リストごとに対応するセクションを手動で増やす方法で対応したいと思います。

ありがとうございました！

---

<div class="post-metadata">

**Author:** ![junichiokamura](https://yyz1.discourse-cdn.com/shopifyforum/user_avatar/community.shopify.com/junichiokamura/32/299737_2.png) [@junichiokamura](https://community.shopify.com/u/junichiokamura)\
**Post date:** [September 2, 2020, 8:49am UTC](https://community.shopify.com/t/topic/19093/4 "2020-09-02T08:49:08Z")

</div>

上記の方のご説明が最適かと思いますが、補足すると、マーチャントがセクションに対して行った設定の値は、テーマ内で１箇所に保存されるのでこういった動作になります。ただし、セクションのliquid内で、例えば、{{template}} などの変数で、今どのページが表示されているかも、表示の分岐に利用すれば、使われているページによって、同一セクションでも表示を切り替えることはできると思います。後はトリッキーですが、スキーマの名称に利用されるページの名前を入れてしまうか。。
