Templates 模板

模板控制在主题中每种页面类型上渲染什么内容。

线上商店里的每种页面类型都有对应的 template type(模板类型)。你可以在模板中添加一些适合该页面类型的功能。比如,要渲染一个商品页面,主题里就至少得有一个 product 类型的模板。同样地,如果你要渲染一个 metaobject 页面,主题里就需要至少有一个 metaobject/{metaobject-type} 类型的模板,比如:metaobject/bookmetaobject/author,这取决于 metaobject 定义的类型。

你也可以为同一种模板类型创建 多个版本,来为不同场景定制模板。比如,你可以为外套类商品创建一个专用的 product 模板,或者为带视频内容的页面创建一个专用的 page 模板。

Templates control what is rendered on each type of page in a theme.

模板控制主题中每种页面类型会渲染出什么内容。

JSON vs. Liquid

你可以用两种不同的文件类型来写模板:JSON 和 Liquid。这两种模板文件类型都可以用来创建多种 template types,每种都对应商店中的一种内容类型。

类型 Type 描述 Description
JSON JSON 模板是 .json 后缀的数据文件。这种模板可以让你很方便地通过 sections 填充内容。商家可以通过主题编辑器添加、移除或重新排列这些 section。

如果你使用的是 JSON 模板,那任何 HTML 或 Liquid 代码都必须写在模板引用到的 section 里。

更多内容可以查看 JSON templates。 | | Liquid | Liquid 模板是 .Liquid 标记文件,扩展名是 .liquid。你可以直接在里面写 Liquid 和 HTML 代码。

更多内容可以查看 Liquid templates。 |

如何选择 JSON 还是 Liquid

跳转到“Choosing JSON vs Liquid”这部分

如果你想在模板中使用 sections,那就应该选 JSON 模板。

JSON 模板能让商家更灵活地添加、删除和重新排序 section,包括 App 提供的 section。而且 JSON 模板还能减少 settings_data.json 里的数据量,因为数据是直接存在模板文件里的,这样可以提升主题编辑器的性能。

Template types 模板类型

每个 template type 都代表商店中的一种内容类型。模板类型不是强制要有的,但你如果想渲染某种页面,就必须要有对应的模板。比如你要渲染商品页面,就至少得有一个 product 类型的模板。

在你的主题中,最多可以有 1000 个 JSON 模板,不管是哪种类型。比如你有 20 个商品 JSON 模板、10 个页面 JSON 模板、5 个分类 JSON 模板,那你还可以再加 965 个模板。

下面是你可以在主题中使用的模板类型。想了解更多可以点模板名称进入详细说明:

类型 Type 描述 Description
404 渲染当顾客输入了一个无效网址时显示的页面内容。
article 渲染文章页面,显示整篇文章内容,并可以有一个评论区。这个模板常用于 Blog 的单篇文章。
blog 渲染 Blog 页面,列出 Blog 中的所有文章。
cart 渲染 /cart 页面,显示顾客购物车里的内容概览。
collection 渲染商品分类页面,列出分类下所有商品。
customers/account 渲染顾客账户页面,展示顾客账户的概览信息。
customers/activate_account 渲染账户激活页面,包含激活账户的表单。
customers/addresses 渲染地址管理页面,让顾客可以查看、管理或新增地址。
customers/login 渲染登录页面,包含顾客登录账户的表单。
customers/order 渲染顾客订单详情页,展示历史订单的详细信息。
customers/register 渲染注册页面,包含顾客创建账户的表单。
customers/reset_password 渲染密码重置页面,包含重置密码用的表单。
gift_card.liquid 渲染礼品卡页面,顾客购买后会看到礼品卡内容。

这个模板必须使用 Liquid 格式。 | | index | 渲染商店首页,对应 / 路径。 | | list-collections | 渲染商品分类列表页面,列出商店里的所有分类。该页面通常在 /collections 路径。 | | page | 渲染商店的普通页面,比如 关于我们联系我们 等。 | | password | 渲染 /password 页面,当你 给商店加了密码保护 后会显示这个页面。页面包含可编辑的信息和输入密码的表单。 | | product | 渲染商品详情页,显示商品的多媒体内容和描述,还包括选择商品规格并添加到购物车的表单。 | | robots.txt.liquid | 渲染 robots.txt 文件,访问路径是 /robots.txt。这个文件告诉搜索引擎哪些页面可以或不可以被抓取。

这个模板必须使用 Liquid 格式。 | | search | 渲染 /search 页面,显示 搜索结果。 | | metaobject | 渲染 metaobject 页面,比如“艺术家”或“作者”。如果你想让每个 metaobject 条目都能作为独立页面显示,那它的定义里必须启用网页功能(web page capability)。 |

注意

gift_cardrobots.txt 模板不能使用 JSON 格式,必须使用 Liquid 模板。其他类型的模板可以选择用哪种文件类型。

Location 位置

模板文件都放在主题的 templates 目录下。

  1. └── theme
  2. ├── layout
  3. ├── templates
  4. | ├── 404.json
  5. | ├── article.json
  6. | ...
  7. ...

Content 内容

你可以在模板中包含哪些内容,取决于它是 JSON 模板还是 Liquid 模板。

在决定一个模板要包含什么内容时,你应该始终考虑这个模板的用途。比如,一个商品页面模板,或者它里面的某个 section,应该一定包含 product object,这个对象能渲染出商品的详细信息;还应该包含 product form tag,让顾客能选择商品规格并加入购物车。根据你的模板类型和使用方式,你可能会把这些内容放在一个 section 中,并在模板里引用它。


如果你还有其他段落需要翻译或者对这段翻译有任何细节要求,随时告诉我!