如何将Section的4个Schema设置转为数组以循环生成HTML代码块
解决Shopify Section设置对象数组化循环的问题
你的核心问题是错误地将对象转成字符串再拆分,导致循环时拿到的是字符串而非原始的文章对象,自然没法访问.id、.title这类属性。
直接跳过字符串拼接的步骤,把Section的设置对象直接存入数组即可:
{% assign recent_articles_array = [section.settings.article_one, section.settings.article_two, section.settings.article_three, section.settings.article_alt] %} {% for recent_article in recent_articles_array %} {% comment %} 先判断对象是否存在,避免空设置生成无效HTML {% endcomment %} {% if recent_article %} <div class="article-card"> <h4>{{ recent_article.title }}</h4> <p>{{ recent_article.excerpt | truncate: 100 }}</p> <a href="{{ recent_article.url }}" class="btn">查看全文</a> <!-- 这里可以直接用 recent_article.id 等属性 --> </div> {% endif %} {% endfor %}
为什么你的原写法不行?
你之前的代码会把section.settings.xxx渲染成对象的字符串形式(比如文章ID或标题文本),拼接后拆分得到的只是一串字符串,不是原本的文章对象。比如如果article_one是标题为"Hello World"的文章,你的字符串会变成"Hello World,xxx,...",split后循环拿到的是"Hello World",自然没有.id属性。
直接将对象存入数组,循环时每个元素都是完整的文章对象,就能正常访问所有属性了。
内容的提问来源于stack exchange,提问作者therealbrovakMQT
相关产品推荐
相关产品推荐

