我正在将我的Wordpress博客迁移到Jekyll,到目前为止我对此非常喜欢。新网站中的当前设置如下:
category
来区分两种类型的帖子(例如,博客和投资组合)tag
现在的挑战是在tags
中显示所有category
,因为我想为两种类型的帖子创建两个单独的标记云。
据我所知,Liquid支持循环遍历网站中的所有代码:
{% for tag in site.tags %}
{{ tag | first }}
{% endfor %}
但我想将范围限制在特定类别,我希望这样做:
{% for tag in site['category'].tags %}
{{ tag | first }}
{% endfor %}
任何建议都将受到赞赏。
答案 0 :(得分:8)
这似乎适用于所有类型的过滤器,如类别或其他前端变量 - 例如" type"所以我可以有类型:文章或类型:视频,如果我把它放在'其中'一部分。
{% assign sorted_tags = site.tags | sort %}
{% for tag in sorted_tags %}
{% assign zz = tag[1] | where: "category", "Photoshop" | sort %}
{% if zz != empty %}
<li><span class="tag">{{ tag[0] }}</span>
<ul>
{% for p in zz %}
<li><a href="{{ p.url }}">{{ p.title }}</a></li>
{% endfor %}
</ul>
</li>
{% endif %}
{% endfor %}
zz只是用来过滤第一个标签[0]以上的东西,因为它似乎只有标签本身,所以你可以用它过滤其他任何东西。 tag [1]包含所有其他内容。
最初我使用的是zz!= null或zz!=&#34;&#34;但他们都没有工作。
答案 1 :(得分:0)
这将有效,它将仅列出类别'X'的帖子上的标签。将X替换为类别名称。
{% for post in site.categories['X'] %}
{% for tag in post.tags %}
{{ tag }}
{% endfor %}
{% endfor %}