Shopify全博文博客模板中blogs循环未运行问题如何解决?
Shopify 遍历所有博客循环未生效排查点
- 确认后台已创建公开博客:Shopify 全局
blogs对象仅返回已发布、公开可见的博客,若后台博客为草稿状态、设置了密码保护或仅特定访客可见,均不会被遍历到。可进入Shopify后台「在线商店」-「博客文章」-「管理博客」页面核对所有博客的发布状态和可见权限。 - 确认代码放置位置符合Liquid作用域规则:如果代码放在单篇文章模板(
article.liquid)或单个博客分类的列表模板(blog.liquid)中,部分旧版主题会限制全局blogs对象的调用,建议先将代码放在根级自定义页面模板(如page.all-blogs.liquid)中测试。 - 排查主题全局配置是否屏蔽博客功能:多数付费主题自带博客功能开关,可进入「在线商店」-「自定义」-「主题设置」的内容展示板块,确认博客功能未被全局关闭。
- 校验循环是否被上层条件拦截:可先在循环外添加
{{ blogs | size }}代码测试返回的博客数量,若返回0则属于博客状态/权限问题,若返回大于0的数字,说明你的循环代码被上层的{% if %}条件判断拦截,并未实际执行。 - 核对开发需求和代码逻辑是否匹配:当前代码遍历的是博客分类,如果你要展示的是所有博客文章,需要调用每个分类下的
articles对象,参考代码如下:
{% for blog in blogs %} <h2>{{ blog.title }}</h2> {% for article in blog.articles %} <h3>{{ article.title }}</h3> <p>发布时间:{{ article.published_at | date: "%Y-%m-%d" }}</p> {% endfor %} {% endfor %}
如果需要按时间顺序聚合所有分类的文章,需要先将所有文章存入同一数组后再做排序处理。
内容的提问来源于stack exchange,提问作者Saul Vega
相关产品推荐
相关产品推荐

