Shopify 页面模板部分与另一个页面的不同数据

Posted

技术标签:

【中文标题】Shopify 页面模板部分与另一个页面的不同数据【英文标题】:Shopify page template sections with different data for another page 【发布时间】: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 %

【问题讨论】:

【参考方案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 - 块是一个很好的方法

以上是关于Shopify 页面模板部分与另一个页面的不同数据的主要内容,如果未能解决你的问题,请参考以下文章

在页面模板液体(Shopify)中显示来自 settings_data.json 的 JSON 数据数组

Shopify将页面描述内容拆分成多个描述放到不同位置

除了 Shopify 商店的主页之外,如何在任何页面中添加主页部分?

Shopify:向特定产品页面添加其他部分

将 compose 数据绑定与另一个数据绑定一起使用

在 Shopify JSON 模板中添加自定义表单字段