Skip to Content
🎉 探索 Shopify 的无限可能 结构化知识 + 实战案例,持续更新中...
专题主题开发与 Liquid

Shopify 主题开发与 Liquid 专题

主题开发的难点不在语法,而在边界: 哪些数据在当前模板里能拿到,什么该做成 Section、theme block 还是 snippet,改动怎么在本地验证后再安全上线。下面按学习路径整理了站内相关文章,从语法一路到工程化。


一、按学习阶段选读

学习阶段先读再读
1. 入门语法Liquid 快速入门语法详解、过滤器、标签与控制结构
2. 对象与数据对象与属性product 对象、cart 对象、Metafields 与 Metaobjects
3. Section / Snippet自定义分区开发自定义代码片段、Section 开发:Schema 与 Liquid
4. 本地开发与 CLIShopify CLI 教程主题本地开发、开发环境搭建
5. 性能与调试Liquid 性能优化调试与故障排除
6. 工程化与上线主题工程化配置测试与部署、AI 辅助主题工程化

一句话原则:新代码一律用 render 不用 include,集合循环套 paginate,所有改动先在开发主题或未发布主题上验证,再发布到线上。


二、全部教程

按最近更新时间排列:


三、相关但不在本专题的文章


四、常见问题(FAQ)

Q:Section、theme block 和 snippet 怎么选? A:看两个问题:这个东西会不会在别的 section 里也想用?会就做成 theme block(放 blocks/),不会就用 section 内联 blocks;商家需要配置的做成 block,纯技术复用留给 snippet,常见组合是 block 暴露设置、内部 render snippet 干活。详见 自定义分区开发 和 自定义代码片段。

Q:为什么 for 循环商品列表少了商品? A:{% for %} 的迭代上限是 50,集合超过 50 个商品时会静默截断,页面看着正常但少了商品,集合类循环要套 {% paginate %}。同类硬限制还有:单个 JSON 模板最多渲染 25 个 section、单个 section 最多 50 个 block。详见 自定义分区开发。

Q:shopify theme dev 会影响线上店铺吗? A:不会。它上传的是隐藏的开发主题,访客看不到,也不占主题数量上限;但开发主题 7 天不活跃会被自动删除,shopify auth logout 时也会被删。要给客户长期预览,用 shopify theme share 或 shopify theme push --unpublished。详见 Shopify CLI 教程。

Q:render 和 include 有什么区别? A:render 是隔离作用域,看不到调用处的变量,每个依赖都要显式传参;include 已废弃,它共享调用处作用域,还能反向修改外部变量,出问题极难排查。新代码一律用 render,并用 {% doc %} 声明参数,让 theme-check 能查出漏传和拼错。详见 自定义代码片段。


小结:主题开发与 Liquid 专题按「语法 → 对象 → Section/Snippet → 本地开发与 CLI → 性能与调试 → 工程化」的路径组织。先把数据上下文和平台硬限制弄清楚,再写组件;命令和平台限制会随 CLI 与主题架构更新,以 shopify.dev 官方文档为准。

最后更新时间: