Skip to main content

Ẩn hiện các bài viết thuộc một nhãn ở trang chủ Blogger

Như các bạn biết thì Blogger đã có tính năng tạo trang tĩnh (static page) để dùng tạo các trang giới thiệu, liên hệ, quy định sử dụng, chính sách riêng tư, diễn đàn, … Một đặc điểm đặc trưng của các trang tĩnh là không hiển thị trên trang chủ, các trang nhãn và lưu trữ. Tuy nhiên Blogger cũng giới hạn số trang tĩnh được tạo cho mỗi blogspot là 10 trang.




Sự giới hạn này cũng là một hạn chế. Khi tôi sử dụng hết 10 trang tĩnh này thì tôi nghĩ ra cách tạo một số trang bài viết cơ bản và làm sao để không cho chúng xuất hiện trên trang chủ, khi đó chúng sẽ giống như các trang tĩnh chính hiệu vậy.

Lấy ví dụ tôi viết một loạt bài viết có tiêu đề lần lượt là Bài viết số 1, Bài viết số 2, Bài viết số 3, Bài viết số 4, Bài viết số 5. Tôi đặt tên nhãn cho các bài viết này theo thông lệ mỗi khi tạo một bài viết. Ở đây tôi muốn Bài viết số 1 và Bài viết số 3 không được hiển thị ở trang chủ, vậy tôi đặt thêm một nhãn chung cho hai bài viết này là Z Label. Phải đặt như thế này để trong trường hợp 2 bài viết này được đặt nhiều nhãn (ví dụ Z Label, Nhãn 1, Nhãn 2, …) thì Z Label sẽ hiển thị ở cuối cùng. Thủ thuật của tôi là không cho nhãn Z Label xuất hiện trên trang chủ, khi đó Bài viết số 1 và Bài viết số 3 sẽ không xuất hiện ở trang chủ.

Để làm được như vậy, tôi đăng nhập Blogger, vào Design >> Edit HTML, chọn Expand Widget Templates (nhớ Backup Template). Bước này gọi là Bước 1.

Tìm dòng <b:includable id='main' var='top'>. Tính từ dòng này trở xuống vài dòng code tôi sẽ tìm thấy đoạn code giống hoặc tương tự như đoạn code bên dưới.



<b:loop values='data:posts' var='post'>
<b:include data='post' name='post'/>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<b:include data='post' name='comments'/>
</b:if>
<b:if cond='data:post.includeAd'>
<b:if cond='data:post.isFirstPost'>
<data:defaultAdEnd/>
<b:else/>
<data:adEnd/>
</b:if>
<data:adCode/>
<data:adStart/>
</b:if>
<b:if cond='data:post.trackLatency'>
<data:post.latencyJs/>
</b:if>
</b:loop>

Tôi thay nó bằng đoạn code bên dưới.

<b:loop values='data:posts' var='post'>
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<b:if cond='data:post.labels'>
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.isLast == &quot;true&quot;'>
<b:if cond='data:label.name != "Z Label"'>
<b:include data='post' name='printPosts'/>
</b:if>
</b:if>
</b:loop>
</b:if>
<b:else/>
<b:include data='post' name='printPosts'/>
</b:if>
</b:loop>

Lúc này tôi tìm thẻ đóng </b:includable> cho thẻ <b:includable id='main' var='top'>. Thẻ đóng này nằm ngay trước dòng 

<b:includable id='commentDeleteIcon' var='comment'>

Tôi đặt đoạn code bên dưới vào sau thẻ </b:includable> nói trên.

<b:includable id='printPosts' var='post'>
<b:if cond='data:post.dateHeader'>
<h2 class='date-header'>
<data:post.dateHeader/>
</h2>
</b:if>
<b:include data='post' name='post'/>
<b:if cond='data:blog.pageType == &quot;static_page&quot;'>
<b:include data='post' name='comments'/>
</b:if>
<b:if cond='data:blog.pageType == "item"'>
<b:include data='post' name='comments'/>
</b:if>
</b:includable>

Lưu Template.

Như vậy Bước 1 đã giúp tôi ẩn một số bài viết thuộc một nhãn nhất định sao cho không hiện ở trang chủ. Một số điểm cần chú ý ở thủ thuật ở Bước 1 là các bài viết không có nhãn sẽ không hiển thị ở trang chủ, nhãn không hiển thị ở trang chủ phải là nhãn cuối cùng trong chuỗi các nhãn ở bài viết được lọc không cho hiển thị ở trang chủ và nếu tất cả các bài viết mới nhất đều thuộc về một nhãn muốn ẩn thì blog của bạn sẽ trống trơn không hiển thị bài viết nào (vì thế chỉ áp dụng thủ thuật này khi blog của bạn đã có nhiều bài viết được đăng).

Bước 2 là ẩn liên kết nhãn Z Label ở cuối (footer) bài viết để khi ta đọc đến Bài viết số 1 và Bài viết số 3 thì sẽ không nhìn thấy liên kết Z Label ở cuối bài viết.

Ở chế độ Edit HTML chọn Expand Widget Templates. Tìm đoạn code như bên dưới.

<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != &quot;true&quot;'>,</b:if>
</b:loop>

Thay nó bằng đoạn code bên dưới.

<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.name != &quot;Z Label&quot;'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != &quot;true&quot;'>,</b:if>
</b:if>
</b:loop>

Lưu Template là OK.

Từ thủ thuật này tôi luận suy ra một thủ thuật khác là chỉ hiển thị các bài viết thuộc một nhãn nào đó ở trang chủ. Ở Bước 1 thay vì sử dụng đoạn code được đánh dấu màu đỏ thì sử dụng đoạn code sau đây.

<b:loop values='data:posts' var='post'>
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<b:if cond='data:post.labels'>
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.name == "Z Label"'>
<b:include data='post' name='printPosts'/>
</b:if>
</b:loop>
</b:if>
<b:else/>
<b:include data='post' name='printPosts'/>
</b:if>
</b:loop>

Ở đây thay vì Z Label, bạn có thể đặt tên nhãn bất kỳ cho các bài viết mà bạn muốn ở trang chủ chỉ hiển thị các bài viết này mà thôi. Tiếp tục áp dụng Bước 2 như trên.

Cũng chính từ Bước 2, ta có thể luận suy ra một thủ thuật khác là chỉ hiển thị tiện ích ở các bài viết thuộc một nhãn nhất định nào đó. Trong đoạn code được đánh dấu màu xanh ở Bước 2, đặt đoạn code sau đây vào trước thẻ </b:loop>.

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<b:if cond='data:label.name == &quot;Nhãn 1&quot;'>
<style type='text/css'>
#HTML1 {display:block;}
</style>
</b:if>
</b:if>

Tiếp tục đặt đoạn code sau đây vào sau dòng ]]></b:skin>.

<style type='text/css'>
#HTML1 {display:none;}
</style>

Ở đây HTML1 là id của tiện ích mà bạn muốn chỉ hiển thị ở các bài viết thuộc Nhãn 1. Thay Nhãn 1 bằng tên nhãn và thay HTML1 bằng id của nhãn mà bạn muốn áp dụng thủ thuật này.

Tôi viết bài này để trả lời câu hỏi của bạn Hieu Bo tại blog Bokute.com.

Bạn ấy hỏi như thế này:

Có cách nào để ẩn bài viết ở trang chủ một cách riêng lẻ không anh?

Ví dụ em có 3 bài viết : bài 1, bài 2, bài 3.

Em không muốn ẩn hết 3 bài mà chỉ muốn ẩn bài số 2 thôi có được không. Mà chỉ ở trang chủ thôi, còn khi xem bài số 2 ở trang xem chi tiết thì vẫn xem bình thường, có điều mình không muốn bài 2 hiện ở trang chủ.

Tôi hy vọng cá nhân bạn Hieu Bo sau khi đọc bài viết này sẽ cảm thấy hài lòng.

Comments

Popular posts from this blog

Top 6 phim điện ảnh Hàn Quốc hay nhất năm 2013

Nếu bạn yêu thích phim Hàn Quốc, thì đây đúng là bài viết dành cho bạn. Không chỉ dừng lại ở ung thư - máu trắng, trai nghèo yêu gái giàu hay chuyện tình lâm li bi đát nữa, giờ điện ảnh Hàn Quốc đã sôi nổi và đa dạng hơn bao giờ hết. Bạn có thể bắt gặp từ những bộ phim đầy tính nhân văn sâu sắc như Điều Bí Mật Trong Phòng Giam số 7, cho đến những bộ phim hành động kịch tính không kém Hollywood. Sau đây là top 6 bộ phim điện ảnh đạt doanh thu cao về phòng vé trong năm 2013 Miracle in Cell No. 7 Phim được đạo diễn bởi Park Jung Hoon, dàn diễn viên chính trong phim bao gồm Choi Min Shik , Hwang Jung Min và Lee Jung Jae. Tính tới nay phim đã có  5 triệu lượt người xem. Bộ phim xoay quanh tình cảm gia đình được đạo diễn bởi Lee Hwan Kyung. Miracle in Cell No. 7 là câu chuyện kể về tình yêu, sự hy sinh của người cha dành cho con gái của mình. Phim có sự tham gia diễn xuất của Ryu Seung Ryong, đã có tới 12,8 triệu lượt người tới xem, khiến phim trở thành bộ phim điện ảnh đắt...

Chọn thời điểm 'tỉnh tò'' với 12 cung hoàng đạo

Để thực hiện thành công chiến dịch 'tỏ tình' một anh chàng hay cô nàng hoàng đạo thì cũng cần phải đăng đàn chọn thời điểm thuận lợi đó nha, chứ còn tự dưng trên trời rơi xuống bảo nàng hay chàng biến thành Gấu của mình thì coi chừng bị 'thịt' luôn đấy. Cùng 12 Cung sao lên kế hoạch chọn thời điểm tốt nhất để tỏ tình với 12 cung hoàng đạo nha các bạn! Chọn thời điểm 'tỉnh tò'' với 12 cung hoàng đạo Đọc thêm » Nội dung được xây dựng bởi 12 Cung Sao (http://ift.tt/1kFM1Lw).Nếu sao chép vui lòng để lại liên kết bản quyền các bạn nhé! Tôn trọng bản quyền là tôn trọng chính bản thân bạn!

Bảng xếp hạng "Tay lái lụa"

Hạng 12: Song Tử  Hạng 11: Kim Ngưu Hạng 10: Song Ngư Hạng 9: Xử Nữ Hạng 8: Cự Giải Hạng 7: Bảo Bình  Hạng 6: Bạch Dương  Hạng 5: Sư Tử  Hạng 4: Thiên Bình  Hạng 3: Nhân Mã  Hạng 2: Thần Nông  Hạng 1: Ma Kết - Một số lý do được đưa ra: Song Tử đứng đầu vì thuộc tuýp cung "liều lĩnh, dễ chán và phát mệt với những thứ di chuyển chậm" - theo lời giải thích của Warren Duke. "Đây cũng là cung gây ra nhiều vụ tai nạn nhất so với tổng thể" Kim Ngưu "khá ương ngạnh và thiếu linh hoạt" trong khi Song Ngư "lại hay làm liều và đùa giỡn với Thần Chết". Tuy nhiên, có thể hiểu theo một cách khác rằng Song Ngư luôn sống trong thế giới riêng, đầu óc mơ mộng và có "trí tưởng tượng bay xa", dẫn đến tình trạng mất tập trung, mơ màng. Ma Kết "đứng chót trong bảng xếp hạng này vì là kẻ luôn kiên nhẫn và cẩn thận"