我的布局如下:
---
layout: default
---
{% include header.html %}
<ul>
{% for cat in site.categories %}
<li>
{% assign cat_name = cat[0] %}
<div class="Projects">
<h1>{{ cat[0] }}</h1>
<h2>{{ cat_name }}</h2>
<ul>
{% for post in site.categories.cat_name %}
<li>
<span class="date">{{ post.date | date: '%Y %b %d' }}</span> - <a href="{{ post.url }}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
</div>
</li>
{% endfor %}
</ul>
这会尝试浏览我网站的类别,然后为每个类别指定类别名称为“ cat_name”,然后为每个类别使用{% for post in site.categories.cat_name %}
循环浏览该类别中的帖子。
这不起作用。该行:
<h2>{{ cat_name }}</h2>
起作用。例如,它显示了“意见”这是类别之一,因此我知道该分配有效。例如,{% for post in site.categories.opinion %}
是有效的。因此,这仅仅是在该变量中传递无效的内容。我该怎么做呢?
答案 0 :(得分:2)
我应该做{% for post in site.categories[cat_name] %}
而不是{% for post in site.categories.cat_name %}
这使它对我有用。
答案 1 :(得分:1)
我相信您想要使用capture
来构建一个使用类别名称的新变量,如此处Liquid文档中所述:https://shopify.github.io/liquid/tags/variable/
{% capture s_c_cat_name%}site.categories.{{cat[0]}}{% endcapture %} ... {% for post in {{s_c_cat_name}} %}