Nếu bạn đã từng túy biến Blogger template, hẳn bạn đã gặp những trường hợp chỉ áp dụng điều gì đó cho loại trang nào đó, chẳng hạn như chỉ hiện phần comment ở các bài post chứ không hiện ở trang tĩnh, hoặc không hiện quảng cáo ở những trang search của Blogger. Bạn có tự họi làm sao trình duyệt phân biệt được những trang web đó với nhau và nó dùng cách gì để phân biệt?
Tôi vừa rồi có cài thêm phần Facebook comment cho Blogger, và chỉ cài đặt ứng dụng này cho các trang post thôi. Nhờ đó tôi đã tìm hiểu thêm các định dạng web Page trong Blogger và cách gọi, truy vấn chúng trong template. Hôm nay tôi sẽ thống kê ở đây tất cả các loại trang của Blogger cũng như cách định danh chúng.
Blogger Conditional Tags
Index Pages
Home Page
Item Pages
Static Pages
Archive Pages
Search/Label Pages
Search Query Pages
Error Page
Specific Page/URL
First Post
Hướng dẫn sử dụng
Đảo chiều một Condition
À, có một ví dụ khác để bạn rõ hơn nội dung của bài này. Ví dụ tôi muốn chèn một widget mới vào Blogger. Thường thì widget được chèn vào template sẽ xuất hiện trên toàn blog, bất kể đó là trang nào. Giờ bạn phải làm sao cho nó chỉ hiện ở các trang tĩnh thôi, còn trong bài post thì không xuất hiện widget này. Vậy thì đầu tiên bạn phải định danh được Post là gì và Page là gì phải không? Đó chính là thứ tôi muốn nói tới.
Để nội dung nào đó xuất hiện hay không xuất hiện ở một trang web nhất định, bạn cần đến một thứ gọi là Conditional Tags - Tag Điều Kiện.
Conditional tags cho phép bạn chỉ định phần nào của template sẽ được hiển thị dưới conditions (điều kiện) nào đó. Giả như bạn chỉ muốn hiển thị các banner quảng cáo Adsense ở trang post mà không xuất hiện ở trang chủ, bạn có thể dùng Conditional tags để chỉ định việc này. Nó cũng giúp bạn ẩn thành phần nào đó đi với điều kiện thỏa khi so sánh.
Trước khi đi sâu hơn, tôi cũng cần lưu ý các bạn đây là kiến thức khá chuyên sâu về Blogger. Nếu bạn chưa từng vọc với template, bạn nên dừng lại tại đây, hoặc chí ít thì bạn chỉ nên thực hành kiến thức sau với một trang blogger tạm thời.
Blogger cung cấp cho bạn rất nhiều Conditional tags để chỉ định các loại trang web riêng biệt. Dưới đây là danh sách của chúng:
1) Blogger Conditional Tags
a. Index Pages
Gồm các trang: home page, label pages, và yearly archive pages
<b:if cond='data:blog.pageType == "index"'>
YOUR CODE HERE. IF THIS IS THE INDEX PAGE, DO THIS.
</b:if>
b. Home Page
Gồm duy nhất một trang chủ Home-page
<b:if cond='data:blog.url == data:blog.homepageUrl'>
YOUR CODE HERE. IF THIS IS THE HOME PAGE, DO THIS.
</b:if>
c. Item Pages
Là những trang Post riêng lẻ, ví dụ như khi bạn mở một bài viết ra đọc.
<b:if cond='data:blog.pageType == "item"'>
YOUR CODE HERE. IF THIS IS AN ITEM PAGE, DO THIS.
</b:if>
d. Static Pages
Phan loai Pages trong Blogger bang code
Gồm những trang được tạo ra trong vùng Pages của Blogger.
<b:if cond='data:blog.pageType == "static_page"'>
YOUR CODE HERE. IF THIS IS A STATIC PAGE, DO THIS.
</b:if>
e. Archive Pages
Phan loai Pages trong Blogger bang code
Archive phân loại theo tháng
Phan loai Pages trong Blogger bang code
Older/Newer posts
Gồm: posts trong lưu trữ (archive), các trang older/newer posts.
<b:if cond='data:blog.pageType == "archive"'>
YOUR CODE HERE. IF THIS IS AN ARCHIVE PAGE, DO THIS.
</b:if>
f. Search/Label Pages
Phan loai Pages trong Blogger bang code
Label widget bên sidebar
Phan loai Pages trong Blogger bang code
Label widget ở footer
Đây là các trang bạn chỉ có thể truy cập vào thông qua widget Label như cloud widget, hoặc danh sách Label ở sidebar hay footer của Blogger.
<b:if cond='data:blog.searchLabel'>
YOUR CODE HERE. IF THIS IS A LABEL PAGE, DO THIS.
</b:if>
g. Search Query Pages
Trang kết quả tìm kiếm.
<b:if cond='data:blog.searchQuery'>
YOUR CODE HERE. IF THIS IS A SEARCH RESULT PAGE, DO THIS.
</b:if>
h. Error Page
Phan loai Pages trong Blogger bang code
Trang LỖI của Blogger, như trang 404 not found khi không tìm thấy trang hoặc trang không tồn tại.
<b:if cond='data:blog.pageType == "error_page"'>
CODE THỰC THI - Nếu đây là trang 404 not found thì thực hiện CODE
</b:if>
i. Specific Page/URL
Trang web chỉ định nào đó. Nhập đia chỉ trang web đó thay cho chữ URL dưới đây:
<b:if cond='data:blog.url == "URL"'>
CODE THỰC THI - Nếu điều kiện trên là đúng thì thực hiện CODE
</b:if>
j. First Post
Bài post đầu tiên, mới nhất, xuất hiện trên cùng của website.
<b:if cond='data:post.isFirstPost'>
CODE THỰC THI - Nếu điều kiện trên là đúng thì thực hiện CODE.
</b:if>
2) Hướng dẫn sử dụng
Bạn có thể dùng các đoạn code trên bất cứ nơi nào trong template HTML của mình, ngoại trừ vùng trong của các tag : <b:section> hoặc <b:widget>.
Nếu bạn chỉ muốn một widget kiểu Linkwithin xuất hiện trên một bài viết đơn, thì bạn có thể dùng đoạn code sau ở nơi bạn muốn widget Linkwithin xuất hiện trong template
<div class='post-footer-line post-footer-line-2'>
<b:if cond='data:blog.pageType == "item"'>
<div class="linkwithin_div"></div>
</b:if>
</div>
Tất cả những gì bạn cần là chèn NỘI DUNG vào giữa tag so sánh điều kiện ở trên.
3) Đảo chiều một Condition
Nếu bạn muốn loại trừ một loại Page nào đó, bạn sẽ muốn Đảo chiều Điều kiện (Reverse a Condition). Điều đó có nghĩa nội dung bạn muốn sẽ xuất hiện ở mọi trang, trừ cái trang bạn đang so sánh Condition. Dưới đây là minh họa cho kiểu Đảo chiều - hay còn gọi là phủ định, loại trừ (bạn để ý có dấu ! ở trước dấu '=', có nghĩa là phủ định)
<b:if cond='data:blog.pageType != "static_page"'>
YOUR CODE HERE. IF THIS IS NOT A STATIC PAGE, DO THIS.
</b:if>
Chúng ta chỉ cần thay dấu '==' thành '!='. Thay vì nói "nếu trang web này là trang xyz..." thì chúng ta chuyển thành "nếu trang này không phải là trang xyz...".
Nếu bạn chưa từng trải nghiệm qua lập trình thì có thể bạn sẽ hơi lúng túng, nhưng cứ áp dụng vào thực tế, bạn sẽ hiểu rõ đoạn code đó mang thông điệp gì.
Xem thêm:
Hướng dẫn Blogger HTML Template Editor - Chỉnh sửa an toàn
Tinh chỉnh Blogger Template - Customize Blogger
Structured Data for Blogger: Định dạng dữ liệu cho Blogger
Phân tích thành phần Basic Blogger Template
Cách update template cho Blogger đúng chuẩn
Phân loại Pages trong Blogger bằng code