2012-06-05 23 views
5

Tôi rất mới với Jekyll và Ruby (chưa, rất được kích thích).Lọc site.related_posts trong Jekyll

Không sử dụng plugin, tôi đang cố gắng tìm cách lọc site.related_posts.

Ví dụ: Tôi đang đọc bài đăng có tiêu đề Foo và các danh mục A, B. trang web

chứa trong tổng số 3 bài viết:

  1. Foo (Thể loại: A, B)
  2. Bar (Thể loại: A, C, D)
  3. Zoo (Thể loại: B, F)

bởi mặc định, trong Jekyll chúng tôi làm điều này:

{% cho bài trong giới hạn site.related_posts: 5%}
{% endfor%}

Tuy nhiên, mã trên trả về tất cả các (3) bài đăng nào.

Bài đăng chứa nhiều danh mục, vì vậy các danh mục phải là một mảng.

Làm cách nào để sửa đổi mã và chỉ trả về mã có danh mục giao cắt với các danh mục của bài đăng hiện tại?

(Trong ví dụ này, tôi muốn mã trở lại chỉ FooZoo.)

+0

Lưu ý rằng theo mặc định, "bài đăng có liên quan" thực sự chỉ là các bài đăng gần đây nhất. Đặt 'lsi: true' trong _config.yml hoặc chạy Jekyll bằng' --lsi' để có kết quả chất lượng cao hơn. –

Trả lời

5

Tôi không có khả năng kiểm tra này ngay bây giờ, nhưng một cái gì đó như thế này sẽ làm việc cho Liquid's cú pháp hạn chế:

{% for post in site.related_posts limit:5 %} 
    {% assign match = false %} 
    {% for category in post.categories %} 
    {% if page.categories contains category %} 
     {% assign match = true %} 
    {% endif %} 
    {% endfor %} 
    {% if match %} 
    <li><a href="{{ post.url }}">{{ post.title }}</a></li> 
    {% endif %}      
{% endfor %} 
+0

Để có kết quả tốt hơn nữa, tôi đang thử cùng một mã sử dụng 'site.posts' thay vì giới hạn' site.related_posts: 5'. Cảm ơn rất nhiều! –

+0

Liên kết tuyệt vời với tài liệu của Liquid, đã mở mắt của tôi. – kiewic

1

Hãy chắc chắn rằng mỗi bài có một danh mục trong các vấn đề trước YAML, sau đó thêm video này vào nơi bạn muốn hiển thị các bài liên quan CATEGORY_NAME:

{% for post in site.categories.CATEGORY_NAME %} 
    <li> 
     <a href="{{ post.url }}"> 
      <img src="{{ post.thumbnail }}"> 
      <p>{{ post.excerpt }}</p> 
     </a> 
    </li> 
{% endfor %} 
Các vấn đề liên quan