Hiển thị tên Nhãn trong bài viết theo vòng lặp
Trong bài này mình sẽ đưa ra quy tắc chung hiển thị tên Nhãn trong bài viết theo vòng lặp áp dụng cho tất cả phiên bản Blogger (1,2,3) và được áp dụng cho widget Blog1 (Bài đăng trên Blog) v1 và v2.
Bây giờ mình sẽ nêu ra các kiểu hiển thị kèm với ví dụ minh họa cho các bạn thấy rõ hơn
20: Số Nhãn tối đa của một bài viết
200: Số ký tự tối đa của một Nhãn
5.000: Số Nhãn tối đa của Blog
Điều quan trọng không thể thiếu đó là tạo vòng lặp Nhãn bài viết trước rồi hãy làm gì thì làm, vòng lặp có dạng sau:
<b:loop values='data:post.labels' var='label'>
// Điều kiện hiển thị tên Nhãn bài viết.
</b:loop>
Lưu ý vòng lặp của Nhãn phải được đặt trong vòng lặp của bài viết như sau:
<b:loop values='data:posts' var='post'>
<b:loop values='data:post.labels' var='label'>
// Điều kiện hiển thị tên Nhãn bài viết.
</b:loop>
</b:loop>
Sau đây là các ví dụ minh họa: Lưu ý tên Nhãn được sắp xếp từ trái qua phải theo bảng chữ cái A,B,C..
1. Lọc lấy tất cả Nhãn
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.name' expr:title='data:label.name'>
<data:label.name/>
</a>
</b:loop>
Trong bài viết có Nhãn nào được show ra hết
2. Lọc lấy Nhãn cuối
<b:loop values='data:post.labels.length - 1' var='label'>
<a expr:href='data:post.labels[label].url' expr:title='data:post.labels[label].name'>
<b:eval expr='data:post.labels[label].name'/>
</a>
</b:loop>
Trong đó data:post.labels.length được hiển thị bằng số Nhãn có trong bài viết, như vậy không cần biết bài viết có mấy Nhãn nhưng chỉ hiển thị Nhãn cuối cùng.
3. Lọc lấy Nhãn đầu:
<b:loop index='item' values='data:post.labels' var='label'>
<b:if cond='data:item lte 0'>
<a expr:href='data:post.labels[0].url' expr:title='data:post.labels[0].name'>
<b:eval expr='data:post.labels[0].name'/>
</a>
</b:if>
</b:loop>
Trong đó item là một giá trị tự đặt sau đó đặt điều kiện cho giá trị này bé hơn hoặc bằng 0 (sử dụng phép toán so sánh), như vậy khi sử dụng điều kiện này không cần biết bài viết có mấy Nhãn nhưng chỉ hiển thị Nhãn đầu tiên.
4. Đảo ngược các Nhãn
Ví dụ bình thường tên các Nhãn được sắp xếp theo thứ tự Nhãn A, Nhãn B, Nhãn C, Nhãn D..., tuy nhiên chúng ta có thể hiển thị ngược thành Nhãn D, Nhãn C, Nhãn B, Nhãn A..., có nghĩa hiển thị từ Nhãn cuối tới Nhãn đầu tiên, chúng ta có 2 cách
<b:loop values='data:post.labels.length - 1 to 0' var='label'>
<a expr:href='data:post.labels[label].url' expr:title='data:post.labels[label].name'>
<b:eval expr='data:post.labels[label].name'/>
</a>
</b:loop>
Hoặc có thể sử dụng
<b:loop reverse='true' values='data:post.labels' var='label'>
<a expr:href='data:label.url' expr:title='data:label.name'>
<data:label.name/>
</a>
</b:loop>
Với reverse='true' là giá trị mặc định nếu bằng true đảo ngược Nhãn, bằng false theo thứ tự từ trái qua và mặc định không ghi.
5. Hiển thị tên một Nhãn của bài viết đầu tiên cho tất cả các bài viết tiếp cho dù các bài viết tiếp theo không có trong Nhãn đó và không sử dụng vòng lặp.
<a expr:href='data:posts[1].labels[0].url' expr:title='data:posts[1].labels[0].name'>
<b:eval expr='data:posts[1].labels[0].name' />
</a>
6. Số Nhãn trong một bài viết
<data:post.labels.length/>