模板可控制主题中每种类型页面的呈现内容。
Shopify中的每种页面类型都有一个相关的模板类型。您可以使用模板为页面类型添加合理的功能。例如,要呈现产品页面,主题至少需要一个产品类型的模板。同样,要显示作者页面,主题至少需要一个作者类型的模板。
目录
您可以创建同一模板类型的多个版本,为不同用例创建自定义模板。例如,可以为外衣产品创建单独的产品模板,或为包含视频内容的页面创建单独的页面模板。

位置
模板文件位于主题的模板目录中:
└── theme
├── layout
├── templates
| ├── 404.json
| ├── article.json
| ...
...
子类型
您可以在主题中使用两种不同的模板文件类型。这些模板文件类型可用于创建多个模板类型,每个类型代表商家网店中的一种内容
文件
主题模板可以使用两种不同的文件类型:JSON 和 Liquid。
某些模板类型只支持 Liquid 文件类型,而其他模板类型则支持任一种模板文件类型。
类型 | 描述 |
JSON | JSON 模板是扩展名为 .json 文件的数据文件。这些模板能让你轻松地在模板中填充各分区的内容。商家可以使用主题编辑器添加、删除或重新排列各部分。如果您使用的是 JSON 模板,那么任何 HTML 或 Liquid 代码都需要包含在模板引用的分区中。 |
Liquid | Liquid 模板是以 .liquid 文件为扩展名的 Liquid 标记文件。你可以直接在 Liquid 模板中添加 Liquid 和 HTML。 |
JSON VS Liquid
如果你想在模板中使用分区,那么你应该使用 JSON 模板。
JSON 模板为商家添加、删除和重新排序版块(包括应用程序版块)提供了更大的灵活性。此外,它们还能最大限度地减少 settings_data.json 中的数据量。相反,数据直接存储在模板中,从而提高了主题编辑器的性能。
模板类型
每个可用的模板类型代表商家在线商店中的一种内容类型。模板类型不是必须的。不过,您必须为要呈现的任何页面类型提供匹配的模板。例如,要呈现产品页面,至少需要一个产品类型的模板。
在您的主题中,所有模板类型中最多可以有 1000 个 JSON 模板。例如,如果您有 20 个 JSON 产品模板、10 个 JSON 页面模板和 5 个 JSON 系列模板,那么您最多可以在主题中添加 965 个额外的模板。
您可以在主题中使用以下模板类型。要详细了解每种模板类型,请单击模板名称。
注意事项
gift_card 和 robots.txt 模板不能使用 JSON 模板,因此必须使用 Liquid 模板。
类型 | 描述 |
404 | 当客户输入无效的商店 URL 时,页面内容将显示给客户 |
article | 渲染文章页面,其中包含文章的全部内容,以及供客户选择的评论部分。此模板用于博客中的单个文章等项目。 |
blog | 渲染博客页面,列出博客中的所有文章。 |
cart | 渲染/购物车页面,提供客户购物车内容的概览。 |
collection | 显示产品系列页面,其中列出产品系列中的所有产品。 |
customers/account | 生成客户帐户页面,该页面提供客户帐户的概览。 |
customers/activate_account | 渲染客户账户激活页面,其中包含激活客户账户的表单。 |
customers/addresses | 显示客户地址页面,允许客户查看和管理其当前地址以及添加新地址。 |
customers/login | 生成客户登录页面,其中包含登录客户账户的表单。 |
customers/order | 生成客户订单页面,显示客户过去订单的详细信息 |
customers/register | 生成客户注册页面,该页面包含用于创建客户账户的表单。 |
customers/reset_password | 重设密码页面,该页面提供重设客户账户密码的表单 |
gift_card.liquid | 呈现礼品卡页面,该页面显示购买时发放给客户的礼品卡。该页面必须是 Liquid 模板。 |
index | shopify网店的主页 |
list-collections | 渲染收藏列表页面,列出商店的所有收藏。该页面位于商店的 /collections 链接下 |
page | 渲染商店的页面,如 “关于我们 “和 “联系我们”。 |
password | 渲染 /password 页面,这是为网店添加密码保护时显示的登陆页面。该页面包括一条商家可编辑的信息,以及供客户访问商店的密码表单。 |
product | 渲染产品页面,其中包含产品的媒体和内容,以及供客户选择变量并将其添加到购物车的表单。 |
robots.txt.liquid | 渲染位于 /robots.txt URL 的 robots.txt 文件。该文件告诉搜索引擎哪些页面可以抓取,哪些页面不可以抓取。必须是 Liquid模板 |
search | 渲染 /search 页面,显示店面搜索结果。 |
metaobject | 渲染元对象页面,如 “艺术家 “或 “作者”。要将每个元对象条目显示为单独页面,元对象定义必须具备网页功能。 |
Schema
Liquid 模板没有固定的Schema。
JSON 模板只接受具有固定Schema和可接受的属性。
内容
模板中可包含的内容取决于它是 JSON 模板还是 Liquid 模板。
在决定要在模板中包含哪些内容时,应始终牢记模板类型的目标。例如,产品模板或产品模板中的一个分区应始终包含product object(用于呈现产品详细信息)和product form tag(用于让客户将产品变量添加到购物车)。根据您的模板类型,您可能希望在模板中引用的分区中包含这些项目。
Liquid 模板接受标准 HTML 和 Liquid。Liquid 模板可以访问任何全局 Liquid objects以及与模板关联的对象。有关详细信息,请参阅每种模板类型的文档。
JSON 模板只接受具有固定模式和可接受属性。
使用
在使用模板文件时,应熟悉备用模板及其使用方法。
备用模板
在某些情况下,您可能需要为同一个模板创建不同的标记。例如,您可能想创建一个备用模板,其中包括针对特定产品的不同部分。
您可以通过主题代码编辑器或主题编辑器在本地创建备用模板。
注意事项
不能用备用模板替换默认模板。如果默认模板不能满足您的需求,您可以编辑模板代码进行定制。
情景模板
当商家需要为特定的买家设定不一样的内容的时候,会创建一个新的情景模板文件。该文件的文名称格式如下:index.context.<context-string>.json
情景模板文件包含对情景模板的重写。情景和父模板在模板顶部定义。情景可以包含 “market”、”market-handle “或 “b2b”:true。例如,下面的代码将图像横幅部分的情景定义为 “market handle ca”:
{
"context": {
"market": "ca"
},
"parent": "index.json",
"sections": {
"image_banner": {
"blocks": {
"heading": {
"disabled": true,
"settings": {
"heading_size": "h2"
}
}
},
"settings": {
"show_text_box": true
}
}
}
}
名称结构
备用模板文件使用以下名称结构,其中 template-name 是模板名称,template-suffix 是备用名称,template-file-type 是文件类型,即 json 或 liquid:
template-name.template-suffix.template-file-type
例如,如果创建的备用 JSON 产品模板名称为 alternate,则文件名如下
product.alternate.json
使用备用模板
创建备用模板后,可通过以下方式应用该模板:
- 可将其分配给 Shopify 管理中的相关资源。
- 在主题编辑器中预览。
- 使用view URL 参数在店面中显示。
提示
您可以通过template objec识别当前使用的模板。
渲染备用模板
可使用view URL 参数在店面中渲染备用模板。该参数的格式应为 ?view=[template-suffix], 其中 [template-suffix] 是模板的备用名称。
例如,给定上一节中的 product.alternate.json 模板和一个名为 Example product 的产品,就可以使用下面的模板呈现该产品:
/products/example-product?view=alternate
原文:https://shopify.dev/docs/themes/architecture/templates
发表回复