Chủ Nhật, 12 tháng 5, 2013

Cách ẩn bài viết trên trang chủ - Blogspot

Có bạn đã từng hỏi mình cách ẩn 1 số bài viết không muốn hiện trên trang chủ kiểu sau đây mình xin chia sẻ với các bạn cách thực hiện như sau (nhớ thank hoặc like nếu thấy hữu ích các bác nhé):

Mình sẽ lấy ví dụ cụ thể để cho các bạn dễ hiểu

Ví dụ: mình 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. Ở đây mình 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 mình đặ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 mình 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, Bạn cần đăng nhập Blogger, vào Design >> Edit HTML(chỉnh sửa HTML), chọn Expand Widget Templates (nhớ Backup Template phòng khi code hỏng để còn tài lại ). 

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 mình 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>


Rồi bạn 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 bạn tìm thẻ đóng </b:includable> Thẻ đóng này nằm ngay trước dòng : <b:includable id='commentDeleteIcon' var='comment'> hoặc bạn có thể tìm thẻ này cho nhanh <b:includable id='commentDeleteIcon' var='comment'>

Rồ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>


Chú ý cái Z Label là cái bạn có thể đổi tên nhưng bạn lên đặt tên tags có chữ Z ở đầu ví dụ như đặt tên là Z thuê xe du lịch chẳng hạn,các bài viết trong Z Label sẽ không được hiển thị tại trang chủ


Nếu bạn muốn ẩn liên kết nhãn Z Label ở cuối 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.


Chúc các bác thành công
Code này mình tìm tòi và sưu tầm thôi mình cũng không nhớ rõ nguồn nữa

Không có nhận xét nào:

Đăng nhận xét