Hiển thị tên Nhãn trong bài viết theo vòng lặp
vào
17 thg 7, 2018
Vấn đề này đôi khi bạn thấy nó thật bình thường bởi vì bạn làm đúng nhưng đôi khi bạn làm không đúng cho dù cố gắng đến mấy cũng không hiển thị được tên Nhãn trong bài viết. Trông có vẻ tầm thường nhưng thật ra nó lại hết sức phức tạp không như bạn tưởng. Một điều lưu ý khi bạn nâng cấp widget Blog1 lên v2 có một số điều kiện của v1 không sử dụng được cho v2 nhưng ngược lại thì có. Cho nên bạn thật lưu ý phần này.

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
Đ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:
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:
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
Trong bài viết có Nhãn nào được show ra hết
2. Lọc lấy Nhãn cuối
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:
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
Hoặc có thể sử dụng
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.
6. Số Nhãn trong một bài viết

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
Lưu ý:
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
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:
Copy
<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:
Copy
<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
Copy
<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
Copy
<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:
Copy
<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
Copy
<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
Copy
<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.
Copy
<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
Copy
<data:post.labels.length/>
Nội dung chính