2012-03-08 25 views
6

Làm cách nào để lặp qua các bài đăng trên trang web của Jekyll nhưng chỉ thực hiện hành động đối với các bài đăng có năm bằng một giá trị cụ thể?Chỉ trả lại các bài đăng của Jekyll khớp với năm cụ thể

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

Ở trên không có tác dụng. cách chính xác để làm điều này là gì?

Trả lời

6

Để trích xuất năm của một ngày, bạn phải sử dụng bộ lọc date với "%Y" (cú pháp đầy đủ được liệt kê here). tức là:

{% 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 %} 
+1

Điều đó thực sự hiệu quả với bạn? Tôi chưa bao giờ xoay sở để tạo ra điều kiện 'if' như vậy để làm việc. Bạn không làm việc với Jekyll 0.11.2 và Liquid 2.3.0. – manatwork

+0

@manatwork Rất tiếc, nó chắc chắn _appeared_ để làm việc khi tôi thử nghiệm nó, nhưng tôi đã bỏ lỡ thực tế là nó không .... Cố định ngay bây giờ. – huon

+0

Vì vậy, bạn sẽ làm điều này như thế nào, nhưng hãy kiểm tra sự tồn tại của bất kỳ bài đăng nào trong năm đó? Ví dụ: nếu có bài đăng trong năm 2008, hãy in h4. –

Các vấn đề liên quan