如何在Shopify店铺首页/自定义页面获取并展示博客文章?
Shopify首页/自定义页面展示最新博客文章+产品列表解决方案
核心疑问解答
blogs全局对象并非仅能在博客模板中访问,在首页、自定义页面等任意模板文件里都可以正常调用,你之前的方案没产生输出,大概率是代码写法偏差或店铺配置问题导致的。
具体实现代码
1. 按发布时间排序的最新博客文章列表
{% assign latest_articles = blogs | map: 'articles' | flatten | sort: 'published_at' | reverse | limit: 5 %} {% if latest_articles.size > 0 %} <h2>最新博客文章</h2> <ul> {% for article in latest_articles %} <li> <a href="{{ article.url }}">{{ article.title }}</a> <span>{{ article.published_at | date: "%Y-%m-%d" }}</span> </li> {% endfor %} </ul> {% else %} <p>暂无已发布的博客文章</p> {% endif %}
- 若只想展示某一个特定博客的文章,把代码里的
blogs替换成对应博客的handle(比如你的博客URL是your-shop.com/blogs/news,就写成blogs['news'])。 limit: 5可以调整为你需要展示的文章数量。
2. 按发布时间排序的最新产品列表
{% assign latest_products = collections.all.products | sort: 'published_at' | reverse | limit: 5 %} {% if latest_products.size > 0 %} <h2>最新产品</h2> <ul> {% for product in latest_products %} <li> <a href="{{ product.url }}">{{ product.title }}</a> <span>{{ product.price | money }}</span> </li> {% endfor %} </ul> {% else %} <p>暂无上架产品</p> {% endif %}
- 若只想展示指定产品集合的内容,把
collections.all替换成对应集合的handle(比如collections['featured-products'])。
之前方案无效的排查方向
- 检查博客handle是否正确:在Shopify后台「在线商店→博客帖子」里点击对应博客,查看URL末尾的handle字符串,确保代码里的handle和后台完全一致。
- 确认博客有已发布文章:如果目标博客下没有任何已发布的文章,代码自然不会输出内容。
- 验证模板放置位置:把代码直接放到首页模板(
index.liquid)或者自定义页面模板(比如新建page.latest-list.liquid,后台创建页面时选择该模板)中,避免放到未被正确调用的局部代码片段里。
内容的提问来源于stack exchange,提问作者world_sword
相关产品推荐
相关产品推荐

