【问题标题】:Render section with blocks use Section Rendering API使用块渲染部分使用部分渲染 API
【发布时间】:2021-12-07 04:16:45
【问题描述】:

我使用 Section Rendering API 来呈现部分的内容,但问题是它无法呈现该部分拥有的块。

例子:

<div class="section-blocks">
    {%- for block in section.blocks -%}
        {%- case block.type -%}
            {%- when 'title' -%}
                <span>This is title</span>
            {%- when 'text' -%}
                <span>This is text</span>
        {%- endcase -%}
    {%- endfor -%}
</div>

{% schema %}
{
    "name": "Demo section",
    "tag": "section",
    "class": "demo-section",
    "settings": [],
    "blocks": [
        {
            "type": "title",
            "name": "the_title",
            "settings": []
        },
        {
            "type": "text",
            "name": "the_text",
            "settings": []
        }
    ]
}
{% endschema %}

一般会显示如下内容:

<div class="section-blocks">
    <span>This is title</span>
    <span>This is text</span>
</div>

但是使用Section Rendering API时,内容只有:

<div class="section-blocks"></div>

Section Rendering API 不支持渲染块? 还是我错过了文档或教程?

谁能给我解释一下,谢谢!

【问题讨论】:

    标签: shopify liquid


    【解决方案1】:

    你错过了很多。

    1. 部分和块是主题的一部分,应使用 Shopify 管理面板上的主题/自定义进行更新。

    2. 您可以基于主题上的 JSON 模板在任何页面上使用部分,您可以添加和删除部分。

    3. 部分可以包含块,块是部分的可定制部分。要激活/停用块,您应该在管理面板上使用自定义。

    因此,Sections 是一种为主题提供灵活性的好方法,而 Blocks 是一种灵活地做部分的好方法。使用部分和块可以轻松地更改网站的外观,而无需使用自定义上的可视化编辑器进行代码知识。

    【讨论】:

    • 看来你误解了我的意思。我想使用 Ajax(Section Rendering API)来获取内容部分(包含许多块)文档:shopify.dev/api/section-rendering
    • 您的结果显示,您没有通过管理面板上的自定义页面向您的部分添加任何块。我的观点 1. 在液体文件中,您声明该部分可以包含的块类型,但您需要在自定义页面上添加和填充您需要的块。