Shopify专题
Liquid模板中的 schema标签
00 分钟
2022-11-6
2023-9-11
type
status
date
slug
summary
tags
category
icon
password
 

一、定义配置数据

Shopify的Liquid模板引擎提供了一个名为schema的特殊标签,它允许开发人员定义一些设置,这些设置可以在主题编辑器中动态地更改。每个schema标签必须包含一个name字段和一个settings数组。以下是一些你可以在schema标签中使用的字段:
  • name:该区块的名称。它会在主题编辑器中显示。
  • class:附加到区块的CSS类。
  • settings:一个包含该区块所有设置的数组。每个设置都是一个对象,它有以下可能的字段:
    • type:设置的类型。可能的值包括texttextarearichtextimage_pickercolorfont_pickerurlradiocheckboxrangeselect等。
    • id:设置的唯一标识符。它用于在Liquid模板中引用该设置。
    • label:设置的标签。它会在主题编辑器中显示。
    • default:设置的默认值。
    • info:关于此设置的额外信息,这将在主题编辑器中以工具提示的形式显示。
    • placeholder:输入字段的占位符文本。
    • options:一些类型(例如radioselect)需要一个options数组。每个选项都是一个包含valuelabel字段的对象。
    • minmaxsteprange类型的设置需要这些字段来定义其最小值,最大值和步长。
对于媒体文件,你可以使用Shopify的image_pickervideo_url类型的设置来让用户上传或选择文件。
 
这里是一些常用的预定义type值:
  • text: 用于简单的文本输入。
  • textarea: 用于多行文本输入。
  • image_picker: 让用户从他们的文件中选择一个图片。
  • color: 提供一个颜色选择器。
  • checkbox: 提供一个复选框。
  • radio: 提供单选按钮。
  • select: 提供一个下拉选择框。
  • range: 提供一个滑动条选择器。

二、获取动态配置的数据

一旦你在Shopify主题中的区块文件(.liquid文件)中定义了schema,那么这些定义的设置将在主题编辑器中可用。这样,用户(通常是商店所有者)就可以根据需要动态更改这些设置。然后,你可以在你的Liquid模板中使用这些设置。
你可以使用section.settings.setting_id来获取区块的设置,其中setting_id是你在schema中为设置定义的id。例如,如果你有一个名为content_type的设置,你可以像这样获取它的值:
在这个例子中,section.settings.content_type将返回用户在主题编辑器中为content_type设置选择的值。
请注意,这些设置只在定义它们的区块内部可用。也就是说,你不能在一个区块中访问另一个区块的设置。此外,设置的值在用户保存主题编辑器后才会更新。