Shopify页面模板部分具有另一页面的不同数据

时间:2019-07-08 06:07:57

标签: shopify shopify-template

我是Shopify的新手,刚刚开始学习。我的问题是,我创建了一个带有允许该部分产品使用的部分的页面模板,现在当我使用相同的页面模板创建另一个页面时,页面内容与之前创建的内容相同,如果更改第二个页面中的内容,它将反映为两个页面。如何区分不同页面的部分?

第1部分

{% schema %}
  {
    "name": "Page Heading",
    "settings": [

        {
            "type": "text",
            "id": "page-heading",
            "label": "Page Heading"
        },
        {
            "type": "text",
            "id": "page-heading-big",
            "label": "Bigger Heading"
        },
        {
            "type": "image_picker",
            "id": "page-heading-image",
            "label": "Heading Image"
        }
    ]
  }
{% endschema %}

第2部分

{% schema %}
{
  "name": "Promotional Blocks",
  "max_blocks": 10,

  "blocks": [
  {
    "type": "single-product",
    "name": "Add Single Product",

    "settings": [
      {
        "id": "single-product",
        "type": "product",
        "label": "Choose Product"
      }
    ]
  }
  ]
}
{% endschema %}

1 个答案:

答案 0 :(得分:0)

您没有做错任何事情,但是目前在Shopify中这是不可能的。根据{{​​3}}

部分可以静态包含在主题的模板(如页眉和页脚)中,也可以从主题编辑器动态添加到主题的主页。

  

静态部分

     

您可以使用section标记在模板文件中包含一个区域。   此标记的行为类似于摘要的include标记:{%部分   'header'%}将包括位于   section / header.liquid。通过以这种方式显式调用节,   称为静态。

     

一个部分可以包含在多个模板中,但仅存在   该部分的一个实例。当商人改变   在一处配置静态部分,则将应用更改   到包含该部分的所有其他地方。   不能包含其他部分。

因此可能的解决方案是在主题文件中使用相同的设置创建一个新部分。

此处定义的另一种可能的解决方法

Shopify Theme Docs

这种方法在各部分的内部使用Shopify one section / schema for multiple pages : Dynamic sections

  

部分可以在其模式中定义块。积木是   可以在其中添加,删除和重新排序的设置和内容   部分。

它的作用是在该部分的内部创建一个块,并添加名为 page_handle 的其他设置。因此,无论何时用户添加新块,用户都可以选择应在哪个页面上显示该块。然后,在节代码中,它检查在块设置内选择的 page_handle 是否与用户当前正在查看的 page_handle 相匹配。如果是,则显示内容。

{% comment %}
    block.settings.page_handle is what user selected in block settings
    page_handle is what page user is viewing on Shopify site
{% endcomment %}
{% assign page_handle = page.handle %}
{% if block.settings.page_handle == page_handle %}
    {{ block.settings.page_title }}
{% endif %}