基础
标签(tag)
{ { code }} :仅仅输出数据,用于逻辑较少的liquid代码。
{% code %} :可以用于任何情况,用于其他作用:
- 在liquid对象和数组中循环。
- 创建新的命名变量。
- 包括“snippets”和链接“sections”。
- for循环。
- if/else语句(条件句)
示例:
{% for product in collection.products %}
{
{ product.title }}
{% endfor %}
上面的循环将循环遍历集合中的产品,并运行代码块中的任何内容。在上面的示例中,它将输出产品的标题。
{%- code -%} :与{% code %}类似,但是防止标签在输出文档中生成空白。
对象与属性(objects and attributes)
对象包含用于在页面上显示动态内容的属性。对象还可以包含其他对象。
对象在liquid中可迭代,类似数组。有时可以在没有属性的情况下调用对象并接收单个值。
liquid中充满了对象。
过滤器(filters)
过滤器用于调整字符串、数字、变量和对象的输出。
在其他编程语言中,这些作用通过方法实现。但是liquid中无法创建自己的方法和作用。
过滤器总是以 | 开头,可以像这样串在一起:
{
{ product.title | upcase | remove: "AWESOME" }}
对于上述代码,如果是product.title之前是“Awesome Shoes”,输出的是“SHOES”。
liquid中的一切都可以用标签、对象和过滤器来概括。
liquid对象
如果我们认为Liquid是访问和显示存储数据的方式,那么对象就是我们在Shopify主题中访问数据的方式。
下面是2个官方文档没有的概念,用于加强理解:
概念1:对象“样式”
在其他编程语言中,对象看起来像这样
person = { first_name: "Chris", last_name: "Dodd", age: 27 }
但在liquid中,对象可以返回单个值、一组值或一组键/值对。这就是为什么我把这个对象分成不同的样式。
类似数组的对象
这些“对象”被称为Liquid中的对象,但它们的操作更像数组。
- 有些可以迭代,有些不能。
- 有些可以通过句柄访问它们的“项”,但只有当这样的句柄存在时(类似于PHP中关联数组的工作方式)。
但是,作为一个整体,这些对象包含其他对象的集合(数组)。
比如:
- Pages
- Blogs
- Articles
- Images
请注意,这些都是复数名称,表明这些对象包含一组值。
单个值的对象
这些对象只有一个值,通过调用对象本身输出。
比如:
- Canonical_url
- Current_page
- Handle
传统样式的对象
传统样式对象是包含属性的对象,而属性又包含可以是任何类型的数据类型(如字符串、数组和其他对象)的值。类似Javascript)中的对象。
比如:
- Product
- Customer
- Page
- Collection
- Article
下面是一个包含了所有样式的例子:
{% for product in collection.products %}
{
{ product.handle }