Hiển thị các bài viết tại trang chủ theo một nhãn hay một số nhãn cố định
Mặc định trang chủ hiển thị các bài đăng gần đây cho tất cả các nhãn, tuy nhiên bạn có thể sử dụng quy tắc lọc lấy nhãn trong vòng lặp b:loop của các bài đăng để hiển thị số bài đăng theo tên nhãn đã lọc tại trang chủ.
Lưu ý quan trọng: Cách làm này liên quan trực tiếp đến số bài hiển thị tại trang chủ mà bạn chọn hiển thị, mặc định thì số bài được hiển thị tại trang chủ là 7 bài đăng, bạn có thể cài đặt hiển thị nhiều hơn. Vấn đề mình muốn đề cập ở đây giả sử số bài đăng ở trang chủ là 7 bài đăng mới nhất cho tất cả các nhãn nhưng nếu bạn lọc lấy một nhãn hay một số nhãn cố định thì trong 7 bài đăng đó nếu có nhãn của bài đăng nào nằm trong bộ lọc sẽ hiển thị và số bài đăng không bằng 7 nữa và có thể sẽ ít hơn.
Ví dụ: Tại chang chủ hiển thị 7 bài đăng cho tất cả các nhãn như sau:
+ Nhãn A: 2 bài đăng
+ Nhãn B: 4 bài đăng
+ Nhãn C: 1 bài đăng
Nếu bạn lọc lấy nhãn A => Số bài đăng chỉ còn 2 bài, tương tự với nhãn B => 4 bài và nhãn C => 1 bài. Nếu bạn lọc lấy nhãn A và C => số bài đăng sẽ hiển thị là 3, tương tự nếu lọc lấy nhãn B và C => số bài đăng sẽ hiển thị là 5.
Cách làm như sau:
Trong widget Blog1, mở rộng thẻ tag <b:includable id='main' var='top'>, trong này bạn sẽ thấy một đoạn thẻ dữ liệu b:loop có dạng sau:
<b:include data='post' name='post'/>
</b:loop>
Bạn thay lại như sau:
+ Áp dụng cho 1 Nhãn duy nhất
<b:loop values='data:posts where (p => p.labels any (l => l.name == "Tên Nhãn"))' var='post'>
<b:include data='post' name='post'/>
</b:loop>
<b:else/>
<b:loop values='data:posts' var='post'>
<b:include data='post' name='post'/>
</b:loop>
</b:if>
Ví dụ:
<b:loop values='data:posts where (p => p.labels any (l => l.name == "windows-setup"))' var='post'>
<b:include data='post' name='post'/>
</b:loop>
<b:else/>
<b:loop values='data:posts' var='post'>
<b:include data='post' name='post'/>
</b:loop>
</b:if>
Ảnh minh họa:
Khi áp dụng quy tắc này tại trang chủ sẽ chỉ hiển thị các bài đăng cho Nhãn có tên: windows-setup
+ Áp dụng cho các Nhãn khác nhau:
<b:loop values='data:posts where (p => p.labels any (l => l.name in ["Tên Nhãn 1","Tên Nhãn 2","Tên Nhãn 3,"Tên Nhãn n"]))' var='post'>
<b:include data='post' name='post'/>
</b:loop>
<b:else/>
<b:loop values='data:posts' var='post'>
<b:include data='post' name='post'/>
</b:loop>
</b:if>
Ví dụ:
<b:loop values='data:posts where (p => p.labels any (l => l.name in ["windows-setup","sua-loi-windows", "thu-thuat-windows"]))' var='post'>
<b:include data='post' name='post'/>
</b:loop>
<b:else/>
<b:loop values='data:posts' var='post'>
<b:include data='post' name='post'/>
</b:loop>
</b:if>
Khi áp dụng quy tắc này tại trang chủ sẽ chỉ hiển thị các bài đăng cho các Nhãn có tên: windows-setup, sua-loi-windows, thu-thuat-windows