【问题标题】:Shopify page template sections with different data for another pageShopify 页面模板部分与另一个页面的不同数据
【发布时间】:2019-11-17 15:07:52
【问题描述】:

我是 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 %}

【问题讨论】:

    标签: shopify shopify-template


    【解决方案1】:

    您没有做错任何事,但目前这在 Shopify 中是不可能的。根据Shopify Theme Docs

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

    静态部分

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

    一个部分可以包含在多个模板中,但只存在 该部分的一个实例。当商家更改 在一个地方配置静态部分,该更改将适用 到包含该部分的所有其他地方。请注意,部分 不能包含其他部分。

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

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

    Shopify one section / schema for multiple pages : Dynamic sections

    此方法使用 Shopify Blocks 内部部分。

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

    它的作用是在部分内创建一个块并添加名为 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 %}
    

    【讨论】:

    • 是的,我知道 shopify 不支持这种功能。有没有办法实现这一目标?我读了这篇文章,但我不明白我是如何实现它的。文章链接:sumankc.com/2017/07/19/…
    • @WPDev 文章很清楚。我添加了一些信息,如果这有助于您了解有关该方法的更多信息。
    • 感谢@BilalAkbar - 块是一个很好的方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多