有没有办法在 Shopify 部分中有多个块类型?
Is there a way to have multiple Block types in a Shopify section?
在 Shopify 部分中,我有一个图像选择器块来制作图库,在同一部分中,我有一个 url 块来制作任意数量的按钮。
问题是两种块类型都出现在主题编辑器的同一 'Content' 区域中。这让编辑看起来很困惑。
有没有办法有 2 个单独的块区域,一个用于图片库,另一个用于按钮?
"blocks": [
{
"type": "button",
"name": "Button",
"settings": [
{
"type": "url",
"id": "button_link",
"label": "Button link"
}
]
},
{
"type": "image",
"name": "Image slide",
"settings": [
{
"type": "image_picker",
"id": "image",
"label": "Image"
}
]
}
]
不,目前没有办法告诉 Shopify 以这种方式显示块。所有块都可以按任意顺序排列,而不管每个块的 'type' 是什么。管理商店的人需要手动将块排列成合理的顺序。
如果你想在项目的渲染期间更容易地分割你的块类型,你可以使用这样的东西:
{% assign image_blocks = section.blocks | where: 'type', 'image' %}
{% for block in image_blocks %}
<!-- Stuff -->
{% endfor %}
{% assign button_blocks = section.blocks | where: 'type', 'button' %}
{% for block in button_blocks %}
<!-- Stuff -->
{% endfor %}
创建 2 个不同的部分并将两者都包括在内。例如:
{% section 'buttons' %}
{% section 'images' %}
其中:
sections/buttons.liquid
{% schema %}
{
"name": "Buttons",
"class": "buttons-section",
"blocks": [
{
"type": "button",
"name": "Button",
"settings": [
{
"type": "URL",
"id": "button_link",
"label": "Button link"
}
]
}
]
}
{% endschema %}
sections/images.liquid
{% schema %}
{
"name": "Images",
"class": "images-section",
"blocks": [
{
"type": "image",
"name": "Image slide",
"settings": [
{
"type": "image_picker",
"id": "image",
"label": "Image"
}
]
}
]
}
{% endschema %}
所以你会得到这个:
在 Shopify 部分中,我有一个图像选择器块来制作图库,在同一部分中,我有一个 url 块来制作任意数量的按钮。
问题是两种块类型都出现在主题编辑器的同一 'Content' 区域中。这让编辑看起来很困惑。
有没有办法有 2 个单独的块区域,一个用于图片库,另一个用于按钮?
"blocks": [
{
"type": "button",
"name": "Button",
"settings": [
{
"type": "url",
"id": "button_link",
"label": "Button link"
}
]
},
{
"type": "image",
"name": "Image slide",
"settings": [
{
"type": "image_picker",
"id": "image",
"label": "Image"
}
]
}
]
不,目前没有办法告诉 Shopify 以这种方式显示块。所有块都可以按任意顺序排列,而不管每个块的 'type' 是什么。管理商店的人需要手动将块排列成合理的顺序。
如果你想在项目的渲染期间更容易地分割你的块类型,你可以使用这样的东西:
{% assign image_blocks = section.blocks | where: 'type', 'image' %}
{% for block in image_blocks %}
<!-- Stuff -->
{% endfor %}
{% assign button_blocks = section.blocks | where: 'type', 'button' %}
{% for block in button_blocks %}
<!-- Stuff -->
{% endfor %}
创建 2 个不同的部分并将两者都包括在内。例如:
{% section 'buttons' %}
{% section 'images' %}
其中:
sections/buttons.liquid
{% schema %}
{
"name": "Buttons",
"class": "buttons-section",
"blocks": [
{
"type": "button",
"name": "Button",
"settings": [
{
"type": "URL",
"id": "button_link",
"label": "Button link"
}
]
}
]
}
{% endschema %}
sections/images.liquid
{% schema %}
{
"name": "Images",
"class": "images-section",
"blocks": [
{
"type": "image",
"name": "Image slide",
"settings": [
{
"type": "image_picker",
"id": "image",
"label": "Image"
}
]
}
]
}
{% endschema %}
所以你会得到这个: