概述
theme 控制着商家在线商店的组织结构与视觉风格。theme 代码按照 Shoplazza theme 专属的标准目录结构进行组织,并包含图片、样式表和脚本等辅助资产。如需了解 theme 在 Shoplazza 中的定位以及如何搭建开发环境,请参阅 Shoplazza theme 概述。
内容
theme 文件分为以下几大类:
- 标记文件 — 这些文件控制 theme 的布局与功能,使用 Liquid 生成构成商家在线商店各页面的 HTML 标记。
- 辅助资产 — 这些文件是 theme 中其他文件调用或使用的资产、脚本或 locale 文件。
- 配置文件 — 这些文件使用 JSON 存储配置数据,商家可通过主题编辑器自定义这些数据。
标记文件
以下几个部分决定了每个页面的组织结构:
| 编号 | 组件 | 描述 |
|---|---|---|
| 1 | layout 文件 | theme 的基础。使用 layout 文件承载页眉、页脚等需要在多个页面重复出现的 theme 元素。 |
| 2 | template | 控制页面显示内容的 template。每个 theme 应包含不同类型的 template,以展示不同类型的内容,例如首页和商品页。 |
| 3 | template 渲染的 section | 商家可添加到 Liquid template 中的可复用、可自定义内容模块。 |
| 4 | 每个 section 包含的 block | 可添加到 section 中的可复用、可自定义内容模块,支持添加、移除和重新排序。 |
辅助资产
您可以在 theme 中添加辅助资产,用于控制组件和功能的呈现方式,或存储可跨组件复用的代码片段。
例如,您需要添加资产来为 theme 定义样式。这些资产通过定义在线商店的视觉风格以及各 section 的样式来体现商家品牌特色。theme 的样式由应用于 layout、template 和 section 文件的 CSS 和 JavaScript 定义。
您希望在 theme 中复用的 Liquid、HTML、CSS 和 JavaScript 可以存放在 snippet 中。theme 的 CSS 和 JavaScript 也存储在 theme 的 assets 目录中。
此外,您还可以使用 locale 文件将 theme 翻译为不同语言。locale 文件包含 theme 中各处文本字符串的翻译内容,存储在 theme 的 locales 目录中。
支持 theme 组件的自定义
商家可以在 Shoplazza 管理后台通过 Shoplazza 主题编辑器自定义其 theme。Theme 可以提供多种自定义选项,让商家打造理想的客户体验:
- 您可以通过创建多个 section 和 block,使 theme template 和 layout section group 模块化。请参阅我们的 section 和 block 最佳实践,了解如何有效设计 section 和 block。
- 您可以创建设置项,允许商家控制 theme 的外观或行为。商家可以通过动态数据源为设置项赋予动态值。
目录结构与组件类型
Theme 必须使用以下目录结构:
.
├── assets
├── config
├── layout
├── locales
├── sections
├── snippets
└── templates
└── customers
不支持上述列表以外的子目录。
📘 注意
theme 上传至 Shoplazza 的唯一必需条件是:
layout目录中包含theme.liquid文件。
assets
assets 目录包含 theme 使用的所有资产,包括图片、CSS 和 JavaScript 文件。
在 theme 中引用资产时,请使用 shoplaza_asset_url Liquid URL filter。
config
config 目录包含 theme 的配置文件。配置文件用于定义主题编辑器主题设置区域中的设置项,并存储其对应的值。
主题设置非常适合用于承载排版、颜色等通用设置。主题设置可通过 settings 对象访问。
📘 提示
您也可以为 section 和 block 创建设置项。这些设置项作为父级 section 或 block 对象的一部分定义,并与关联对象一起显示在主题编辑器中。
layout
layout 目录包含 theme 的 layout 文件,所有 template 文件都通过 layout 进行渲染。
Layout 是 Liquid 文件,允许您将需要在多个页面类型中重复出现的内容放在同一位置管理。
此文件夹中必须存在 theme.liquid 文件,theme 才能上传至 Shoplazza。
locales
locales 目录包含 theme 的 locale 文件,用于提供翻译内容。Locale 文件允许您在主题编辑器中提供翻译体验,为在线商店提供译文,并允许商家自定义在线商店中的文本内容。
sections
sections 目录包含 theme 的 section。
Section 是 Liquid 文件,允许您创建商家可自定义的可复用内容模块。Section 还可以包含 block,允许商家在 section 内添加、移除和重新排序内容。
snippets
snippets 目录包含承载较小可复用代码片段的 Liquid 文件。您可以在整个 theme 中通过 Liquid include 标签或 render 标签来引用这些 snippet。
templates
templates 目录包含 theme 的 template 文件,用于控制每种类型页面的渲染内容。
templates/customers 目录包含面向客户的页面(如登录页及相关账户概览页)的 template 文件。
您可以使用 template 添加适合该页面类型的功能。例如,可以在商品 template 中添加额外的商品推荐内容。
template 不是必需的,但您需要为每种要渲染的页面类型提供对应的 template。例如,要渲染商品页面,至少需要一个 product 类型的 template。