模板

模板可控制主题中每种类型页面的呈现内容。

Shopify中的每种页面类型都有一个相关的模板类型。您可以使用模板为页面类型添加合理的功能。例如,要呈现产品页面,主题至少需要一个产品类型的模板。同样,要显示作者页面,主题至少需要一个作者类型的模板。

您可以创建同一模板类型的多个版本,为不同用例创建自定义模板。例如,可以为外衣产品创建单独的产品模板,或为包含视频内容的页面创建单独的页面模板。

位置

模板文件位于主题的模板目录中:

└── theme
    ├── layout
    ├── templates
    |   ├── 404.json
    |   ├── article.json
    |   ...
    ...

子类型

您可以在主题中使用两种不同的模板文件类型。这些模板文件类型可用于创建多个模板类型,每个类型代表商家网店中的一种内容

文件

主题模板可以使用两种不同的文件类型:JSON 和 Liquid。

某些模板类型只支持 Liquid 文件类型,而其他模板类型则支持任一种模板文件类型。

类型描述
JSONJSON 模板是扩展名为 .json 文件的数据文件。这些模板能让你轻松地在模板中填充各分区的内容。商家可以使用主题编辑器添加、删除或重新排列各部分。如果您使用的是 JSON 模板,那么任何 HTML 或 Liquid 代码都需要包含在模板引用的分区中。
LiquidLiquid 模板是以 .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 模板。
indexshopify网店的主页
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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注