只返回符合特定年份的Jekyll帖子

只返回符合特定年份的Jekyll帖子,jekyll,liquid,Jekyll,Liquid,我如何循环浏览Jekyll站点的帖子,但只对年份等于特定值的帖子采取行动 {% for post in site.posts %} {% if post.date.year == 2012 %} <p>{{ post.date }}</p> <p>{{ post.title }}</p> {% endif %} {% endfor %} {%for site.posts%} {%if post.date.year=

我如何循环浏览Jekyll站点的帖子,但只对年份等于特定值的帖子采取行动

{% for post in site.posts %}
  {% if post.date.year == 2012 %}
      <p>{{ post.date }}</p>
      <p>{{ post.title }}</p>
  {% endif %}
{% endfor %}
{%for site.posts%}
{%if post.date.year==2012%}
{{post.date}

{{post.title}}

{%endif%} {%endfor%}

上述方法不起作用。正确的方法是什么?

要提取日期的年份,必须使用
日期
过滤器和
“%Y”
(列出了完整的语法)。i、 e:

{%for site.posts%}
{%capture year%}{{post.date | date:“%Y”}{%endcapture%}
{%if year==“2012”%}
{{post.date}

{{post.title}}

{%endif%} {%endfor%}
这真的适合你吗?我从未设法使这样的
if
条件起作用。你的两个版本都不适用于Jekyll 0.11.2和Liquid 2.3.0。@manatwork哎呀,当我测试它时,它看起来确实有效,但我忽略了一个事实,那就是它没有。。。。现在已修复。那么,您将如何执行此操作,但请检查该年是否存在任何帖子?例如,如果2008年有帖子,请打印一个h4.Works™! 谢谢
{% for post in site.posts %}
  {% capture year %}{{post.date | date: "%Y"}}{% endcapture %}
  {% if year == "2012" %}
      <p>{{ post.date }}</p>
      <p>{{ post.title }}</p>
  {% endif %}
{% endfor %}