备用模板(Alternate templates)

在处理模板文件的时候,你应该熟悉备用模板以及怎么使用它们。

有时候你可能需要为同一个模板创建不同的标记结构(markup)。比如说,你可能想为特定的产品创建一个包含不同区块的备用模板。

你可以在本地、通过主题代码编辑器,或者通过主题编辑器来创建备用模板。

注意

你不能用备用模板替换默认模板。如果默认模板不符合你的需求,那你可以编辑模板代码来自定义它。

上下文模板(Contextual templates)

当商家为特定买家上下文自定义模板时(adapts a template for a specific buyer context),会生成一个新的上下文模板文件。这个文件会以如下格式命名:index.context.<context-string>.json

上下文模板文件包含你为某个上下文做的模板覆盖(override)。模板顶部定义了 context 和父模板。context 字段的值可以包含 "market": "market-handle" 或者 "b2b": true。比如下面这个例子就是为市场标识 ca 自定义了 image-banner 区块:

  1. {
  2. "context": {
  3. "market": "ca"
  4. },
  5. "parent": "index.json",
  6. "sections": {
  7. "image_banner": {
  8. "blocks": {
  9. "heading": {
  10. "disabled": true,
  11. "settings": {
  12. "heading_size": "h2"
  13. }
  14. }
  15. },
  16. "settings": {
  17. "show_text_box": true
  18. }
  19. }
  20. }
  21. }

命名结构(Name structure)

备用模板文件使用以下命名结构,其中 template-name 是模板名,template-suffix 是备用模板名,template-file-type 是文件类型,通常是 jsonliquid

  1. template-name.template-suffix.template-file-type

比如你创建了一个名为 alternate 的 JSON 产品模板,那文件名就是:

  1. product.alternate.json

使用备用模板(Use an alternate template)

当你创建了一个备用模板之后,可以通过以下方式应用它:

小提示

渲染备用模板(Render an alternate template)

跳转到“渲染备用模板”小节

你可以通过 view URL 参数在前台渲染备用模板。格式如下:?view=[template-suffix],其中 [template-suffix] 是备用模板的名称。

比如在前面提到的 product.alternate.json 模板下,有一个产品叫做 Example product,你可以用下面这个链接来用备用模板渲染这个产品:

  1. /products/example-product?view=alternate