Templates 模板
模板控制在主题中每种页面类型上渲染什么内容。
线上商店里的每种页面类型都有对应的 template type(模板类型)。你可以在模板中添加一些适合该页面类型的功能。比如,要渲染一个商品页面,主题里就至少得有一个 product
类型的模板。同样地,如果你要渲染一个 metaobject 页面,主题里就需要至少有一个 metaobject/{metaobject-type}
类型的模板,比如:metaobject/book
或 metaobject/author
,这取决于 metaobject 定义的类型。
你也可以为同一种模板类型创建 多个版本,来为不同场景定制模板。比如,你可以为外套类商品创建一个专用的 product 模板,或者为带视频内容的页面创建一个专用的 page 模板。
模板控制主题中每种页面类型会渲染出什么内容。
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_card
和 robots.txt
模板不能使用 JSON 格式,必须使用 Liquid 模板。其他类型的模板可以选择用哪种文件类型。
Location 位置
模板文件都放在主题的 templates
目录下。
└── theme
├── layout
├── templates
| ├── 404.json
| ├── article.json
| ...
...
Content 内容
你可以在模板中包含哪些内容,取决于它是 JSON 模板还是 Liquid 模板。
在决定一个模板要包含什么内容时,你应该始终考虑这个模板的用途。比如,一个商品页面模板,或者它里面的某个 section,应该一定包含 product
object,这个对象能渲染出商品的详细信息;还应该包含 product form tag,让顾客能选择商品规格并加入购物车。根据你的模板类型和使用方式,你可能会把这些内容放在一个 section 中,并在模板里引用它。
如果你还有其他段落需要翻译或者对这段翻译有任何细节要求,随时告诉我!