Thư viện

Trải nghiệm

Thứ Năm, tháng 12 01, 2011

Không hiển thị bài viết thuộc nhãn nhất định ở kiểu trang index

Ở đây mình sẽ gán một nhãn chung cho các bài viết được dùng để tạo trang riêng biệt giống trang tĩnh, ví dụ tên nhãn là HiddenLabel. Nào chúng ta hãy bắt đầu thực hiện như sau:

Chia sẻ:
Không hiển thị bài viết thuộc nhãn nhất định ở kiểu trang index
Chúng ta đều biết Blogger đã có tính năng tạo trang tĩnh (static_page) giúp người dùng tạo các trang chuyên biệt như trang giới thiệu (About), trang liên hệ (Contact)… Đặc trưng của các trang tĩnh là không được duyệt hiển thị trên trang chính (kiểu trang index gồm trang chủ, trang nhãn và trang lưu trữ). Tuy nhiên Blogger giới hạn số trang tĩnh tối đa được tạo cho mỗi blogspot là 20 trang. Dường như con số này quá khiêm tốn so với nhu cầu sử dụng của bạn. Nào là trang nén CSS, trang mã hóa, trang mã màu, trang liên kết, trang sản phẩm, trang dịch vụ, trang diễn đàn, trang liên hệ, trang giới thiệu, trang góp ý, trang lưu bút … Tính ngót ra cũng đến trên dưới hai chục trang như vậy. Thế thì làm sao để thỏa mãn nhu cầu tạo trang riêng biệt như thế.

Bạn có thể xem DEMO (Chú ý ở tiện ích Recent Posts có hiển thị 2 bài viết đầu tiên thuộc 1 nhãn song đến trang chủ thì không nhìn thấy chúng nữa).

Lời giải đáp lại đụng đến các lệnh điều kiện trong cấu trúc XML của Template. Ở đây mình sẽ gán một nhãn chung cho các bài viết được dùng để tạo trang riêng biệt giống trang tĩnh, ví dụ tên nhãn là HiddenLabel. Nào chúng ta hãy bắt đầu thực hiện như sau:

» Cách 1: Ẩn bài viết thuộc nhãn nhất định ở kiểu trang index!

1. Đăng nhập vào tài khoản Blogger
2. Vào phần Mẫu (Template)
3. Chọn chỉnh sửa HTML (Edit HTML)
4. Tìm thẻ sau:
<b:include data='post' name='post'/>
- Lệnh include ở trên sẽ giúp duyệt hiển thị các bài viết ở tất cả các kiểu trang. Vậy ta bắt đầu thay nó bằng đoạn code bên dưới:
<!-- Điều kiện nếu ở kiểu trang index -->
<b:if cond='data:blog.pageType == &quot;index&quot;'>
<!-- Điều kiện nếu ở các bài viết có gắn nhãn -->
<b:if cond='data:post.labels'> <b:loop values='data:post.labels' var='label'> <b:if cond='data:label.name != &quot;HiddenLabel&quot;'>
<!-- Ở đây đặt điều kiện cho các nhãn, hiển thị bài viết của tất cả các nhãn ở trang index, trừ nhãn có tên HiddenLabel -->
<b:include data='post' name='post'/> <!-- Kết thúc điều kiện cho các nhãn --> </b:if> </b:loop> <b:else/>
<!-- Nếu các bài viết không gắn nhãn thì cũng cho hiển thị ở trang index -->
<b:include data='post' name='post'/> </b:if> <b:else/>
<!-- ở kiểu trang còn lại là các trang item thì -->
<b:include data='post' name='post'/> </b:if>
5. Tiếp theo là ẩn liên kết nhãn HiddenLabel ở cuối bài viết hoặc dưới tiêu đề bài viết để khi ta đọc đến các bài viết thuộc nhãn HiddenLabel thì sẽ không nhìn thấy liên kết của nó.
5.1. Tìm tất cả các đ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>
5.2.. Rồi 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;HiddenLabel&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>
6. Lưu Template là hoàn thành.
- Bằng cách này chúng ta có thể tạo được rất nhiều trang riêng biệt có tính năng không hiển thị ở kiểu trang chính như trang tĩnh vậy, miễn là ta gán cho các bài viết đó chung cho một nhãn nhất định.

» Cách 2: Ẩn một nhãn ở kiểu trang Index:

- Các bạn thực hiện từ bước 1 đến bước 5.1 ở cách 1 bên trên. sau đó thay code bước 5.2 thành đoạn code bên dưới:
<!-- Điều kiện nếu ở kiểu trang index -->
<b:if cond='data:blog.pageType == &quot;index&quot;'>
<!-- Điều kiện nếu ở các bài viết có gắn nhãn -->
<b:if cond='data:post.labels'>
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.name != &quot;Tên nhãn 1&quot;'>
<b:if cond='data:label.name != &quot;Tên nhãn 2&quot;'>
<b:include data='post' name='post'/>
<!-- Kết thúc điều kiện cho các nhãn -->
</b:if></b:if>
</b:loop>
<b:else/>
<!-- Nếu các bài viết không gắn nhãn thì cũng cho hiển thị ở trang index -->
<b:include data='post' name='post'/>
</b:if>
<b:else/>
<!-- ở kiểu trang còn lại là các trang item thì -->
<b:include data='post' name='post'/>
</b:if>
- Lưu Template là hoàn thành.
Theo: thuthuattblogger.

54 nhận xét:

  1. Hi admin, bài viết này đúng cái mình đang cần, nhưng không hiểu sao khi áp dụng nó cho blog của mình lại không được. Mời bạn xem qua blog của mình: http://thietke-dohoa.blogspot.com/.
    Bây giờ mình muốn làm 1 trang tin tức giống như Hiddenlable, nhưng khi chỉnh sửa những đoạn code giống như trên thì trang chủ bị biến dạng, cụ thể là 2 hình demo này:

    1. Trước khi sửa: https://lh4.googleusercontent.com/--9kX1qvJQ54/Tu4hvIeVq9I/AAAAAAAABcM/7jmTnJs4MEQ/s624/truoc%252520chinh%252520sua.PNG
    2. Sau khi sửa: https://lh3.googleusercontent.com/-OU2ibbJSDJw/Tu4hvIzUMAI/AAAAAAAABcQ/lfUv0JSBVG8/s620/sau%252520chinh%252520sua.PNG

    Thực sự mà nói mình cũng không rành về coder lắm, admin biết lỗi gì thì giúp mình nhé, thanks!

    Theo mình nghĩ nó là lỗi trùng lặp nhưng mình không biết nó nằm ở thẻ nào? đã thử xóa mấy cái trùng lặp xem sao thì toàn báo lỗi.

    Trả lờiXóa
  2. @Phuong Vu Ok để mình coi xem thế nào nha. Được thì mình Pm lại cho :)

    Trả lờiXóa
  3. Mình chuyển sang xài thesis theme và bị tình trạng là page không hiển thị, chỉ có phần tóm tắt thôi. Bạn có cách nào xử lý dùm mình. Chỉ có post là hiển thị đầy đủ, page bị ngắt giữa chừng và không hiển thị đầy đủ. Thanks rất nhiều.

    Trả lờiXóa
  4. Blog mình ko có lênh này :
    Và làm không được bạn ơi. giúp với

    Trả lờiXóa
  5. Blog mình ko có lênh này : ()
    Và làm không được bạn ơi. giúp với

    Trả lờiXóa
  6. Chào Nam Tạ, Mình vừa sử dụng 1 template đã việt hóa để phục vụ cho việc kinh doanh online của mình, lúc đầu thì trôi chảy nhưng khi up sản phẩm lên thì có 1 số nhãn không hiển thị hết được sản phẩm ví dụ như:
    +PINKOO(18) mà chỉ hiển thị được 4 sản phẩm
    +Tranh thêu phong cảnh(17) mà chỉ hiển thị được có 7 sản phẩm
    ....
    Nói chung là số bài viết thuộc nhãn bị thiếu nên không hiển thị được hết
    Bạn có cách nào khắc phục giúp mình không?
    http://tranhtheusaigon.blogspot.com/

    Xin hãy gửi qua email cho mình nếu bạn có thể giúp được:
    chipvietcomputer@gmail.com

    Chúc cả nhà một ngày vui vẻ và hạnh phúc

    Trả lờiXóa
    Trả lời
    1. DO xung đột file JS. đó bạn ak. Phải removerđi mới được.

      Xóa
    2. nếu remove đi thì có ảnh hưởng gì đến blg không bạn?

      Xóa
    3. Mình đã remove 1 đoạn ngắn
      type='text/javascript'>
      $(document).ready(function(){
      $("#featured > ul").tabs({fx:{opacity: "toggle"}}).tabs("rotate", 4000, true);
      });


      mà vẫn không khắc phục được, hix

      Xóa
    4. Phải coi chừng nha. Remover nhầm sẽ phá vỡ bố cục đó.

      Xóa
  7. đã remove đi 2 đoạn script mà vẫn chưa khắc phục được, hix

    Trả lờiXóa
    Trả lời
    1. Không phải đoạn này đoạn này là hiệu ứng Jquery thôi. Hãy gửi nó vào tavannam01@gmail.com mình sẽ chỉnh cho.

      Xóa
  8. Nam ơi ! Mình đã gửi source qua email cho bạn rồi đó.
    Bạn giúp mình với nhé

    Trả lờiXóa
    Trả lời
    1. Mình check mail nhưng không thấy có bạn hãy xem lại thư nha.

      Xóa
    2. Bạn ơi mình cũng bị như thế bạn có thế hướng dẫn chi tiết cho mình được không, bài viết có 18 mà nó chỉ hiện có 6 không có chỗ xem thêm nên trả biết làm cách nào

      Xóa
  9. Nhận xét này đã bị quản trị viên blog xóa.

    Trả lờiXóa
  10. Mình thực hiện thì ẩn được bài viết Label hidden hiển thị lên trang chủ. Nhưng truy cập link label hidden thì bài viết cũng không hiển thị lun.
    Bạn có cách nào cho nó chỉ ẩn bài viết trên trang chủ (index) nhưng khi vô liên kết label đó thì vẫn thấy được bài viết.
    Khi mình làm theo cách ở đây (http://huynh-nhat-ha.blogspot.com/2011/01/hide-posts-from-label-on-homepage.html ) thì được kết quả như mình muốn nhưng nó lại mất background phần thân blog.
    Mong bạn giúp mình. Mình mò mẫm mãi mà không được.

    Trả lờiXóa
    Trả lời
    1. Mình cũng bị giống bạn này. Blog của mình dạng shop, chủ yếu đăng sản phẩm nên mình show sản phẩm ra trang chủ, còn phần tin tức linh tinh mình muốn gộp vào một label và ẩn nó khỏi trang chủ.
      Mình đã làm theo hướng dẫn ở trên, ẩn được tin khỏi trang chủ nhưng khi nhấn vào label này thì cũng ko thấy tin tức bên trong đâu nữa.
      Rất mong bạn kiểm tra lại giùm chỗ này ,thanks !
      Blog shop của mình : yeu365.net

      Xóa
  11. admin ơi! e cũng làm theo anh chỉ nhưng mà không tài nào ẩn được bài viết mà mình mún ẩn cả :( , nó vẫn hiện ra nguyên xi đó lun

    Trả lờiXóa
  12. e cũng không thể làm được, nó vẫn hiện ra đó, e mún ẩn nó đi để cho tiện lợi nhưng không cách nào làm được

    Trả lờiXóa
    Trả lời
    1. 1- Em phải thay thế đoạn HiddenLabel thành tên nhãn mà em muốn ẩn bài viết của nhãn đó
      2- Lưu ý một blog có thể có 2 đoạn code bước 4 nên em chú ý có thể em đã chèn nhầm vị trí nha,'

      3- Mẹo: Nếu chỉ muốn ẩn một bài viết cụ thể thì chỉnh cho thời gian của nó về sau là nó sẽ biến mất khỏi trang chủ của em thôi,

      Xóa
  13. Mình đã ẩn được bài viết nhưng khi vào nhãn đó thì bài viết cũng mất luôn, ý mình là chỉ muốn nó ẩn một số bài viết ở trang chủ thôi! Hãy giúp mình nhé!
    Thanks!

    Trả lờiXóa
    Trả lời
    1. Bạn thay đoạn:

      <b:if cond='data:blog.pageType == "index"'>

      thành:

      <b:if cond='data:blog.url == data:blog.homepageUrl'>

      Xóa
  14. anh ơi cho em hỏi có thể ẩn dc 2 nhãn trở lên k ạ

    Trả lờiXóa
    Trả lời
    1. Có thể gắn chung nó nó một nhãn Hidenlabel nha e,

      Xóa
  15. Bạn ơi cho mình hỏi , Khi mình viết bài ở nhãn "Du lịch bụi"nhưng bài viết không hiển thị ở trang chủ : Đây là bloger của mình chiasekinhnghiemdimaybay.blogspot.com . Nhãn "vé giá rẻ" thì hiển thị bình thường

    Trả lờiXóa
    Trả lời
    1. Bạn lưu ý đoạn bên dưới:

      feeds/posts/default/-/Du lịch bụi ?max-results

      Phía sau chữ Du lịch bụi có một dấu cách ngăn giữa nó với dấu ? bạn có thể bỏ dấu cách đó đi. để được như sau:

      feeds/posts/default/-/Du lịch bụi?max-results

      Xóa
  16. uh được rùi, thank bạn nhiều nhé

    Trả lờiXóa
  17. Bạn ơi cho mình hỏi sao trang blog của mình http://news30s.blogspot.com/ không hiển thị bài viết khi mình click vào nút label? nó chỉ hiển thị ngoài trang chủ. Còn lại hầu như bên trong hầu như đều không tìm thấy bài viết nào cả! Mong ad giúp đỡ

    Trả lờiXóa
    Trả lời
    1. Nguyên nhân do tiện ích readmor bạn đang sử dụng bị thẻ điều kiện chi phối/

      Bạn kiểm tra lại đoạn code xung quang thẻ data:post.body của bạn nha. Nếu không tìm thấy hãy copy một vài dòng xung quanh đoạn trên lên đây mình sửa cho nha.

      Xóa
    2. Có 3 thẻ data.post.body: mình post 3 doan len nhe ban:
      Đoạn 1:

      < div class='date-posts'>
      < div class='post-outer'>

      < div class='post hentry uncustomized-post-template'>
      < a expr:name='data:post.id'/>
      < b:if cond='data:post.title'>
      < h3 class='post-title entry-title'>
      < b:if cond='data:post.link'>
      < a expr:href='data:post.link'><data:post.title/></a>
      < b:else/>
      < b:if cond='data:post.url'>
      < b:if cond='data:blog.url != data:post.url'>
      < a expr:href='data:post.url'><data:post.title/></a>
      < b:else/>
      < data:post.title/>
      < /b:if>
      < b:else/>
      < data:post.title/>
      < /b:if>
      < /b:if>
      < /h3>
      < /b:if>

      < div class='post-header'>
      < div class='post-header-line-1'/>
      </div>

      < div class='post-body entry-content' expr:id='&quot;post-body-&quot; + data:post.id'>
      < data:post.body/>
      < div style='clear: both;'/> <!-- clear for photos floats -->
      < /div>

      < div class='post-footer'>
      < div class='post-footer-line post-footer-line-1'>
      < span class='post-author vcard'>
      < b:if cond='data:top.showAuthor'>
      < b:if cond='data:post.authorProfileUrl'>
      < span class='fn'>
      < a expr:href='data:post.authorProfileUrl' rel='author' title='author profile'>
      < data:post.author/>
      < /a>
      < /span>
      < b:else/>
      < span class='fn'><data:post.author/></span>
      < /b:if>
      < /b:if>
      < /span>

      Xóa
  18. Đoạn 2:

    <div id='anc_pl'/>
    <div id='anc_tp'/>


    <data:post.body/><div class='clear'/></div>
    <!--Quang cao xacnhan.net-->
    <script src='http://ads1.thichqua.us/CodeQuangCao/autoads-game/auto-ads.php?id=3722' type='text/javascript'/>
    <noscript>
    <div style='border: 1px dashed violet;'><div style='display: block; float: left; padding: 5px 5px;'><img src='http://ads1.thichqua.us/CodeQuangCao/autoads-game/images/ailatrieuphu.jpg' style='width:80px; height:80px;'/></div><div style='display: block; padding: 5px 5px;'><strong>Game Ai là triệu phú</strong><p style='margin: 0px; padding: 0px;color: #0054a6;font-size:12px;'>- Thể loại : Java, Android, Apple</p><p style='margin: 0px; padding: 0px;color: #0054a6;font-size:12px;'>- Game mô phỏng theo một Liveshow trên truyền hình VTV3, Phiên bản mới nhất của Ai là triệu phú 2013 cho điện thoại</p><img align='absmiddle' height='12px' hspace='5' src='http://ads1.thichqua.us/CodeQuangCao/autoads-game/images/load.png' vspace='5' width='12px'/><a href='#' style='color: #1671C5;font-weight: bold;text-decoration: none;font-size: 12px;'>Tải về miễn phí</a><div style='clear:both;'/></div></div>
    </noscript>

    Trả lờiXóa
  19. Đoạn 3:

    <script type='text/javascript'>//<![CDATA[
    Phantom.Player(Phantom.up("Blog1"),"phim_pl");
    //]]></script>
    </b:if>

    <b:if cond='data:blog.pageType == &quot;static_page&quot;'>
    <style>
    #sidebar{display:none!important;}
    #article,.news-post {
    margin:0;
    width: 98%;
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
    box-shadow: none;
    }
    </style>

    <h2 class='news-posttitle'><data:post.title/></h2>
    <data:post.body/>


    <div class='clear'/>
    </b:if>

    <script type='text/javascript'>
    document.write(fbcm);
    </script>

    Trả lờiXóa
    Trả lời
    1. Bạn gửi mẫu vào tavannam01@gmail.com mình chỉnh cho nha. Những đoạn bạn vừa đưa ra mình kiểm tra thấy nó hoạt động bình thường không có lỗi gì.

      Xóa
    2. Mình đã gửi template vào mail của bạn mà không thấy bạn hồi âm vậy?mail mình là tampdm.soft@gmail.com ấy!

      Xóa
    3. có rất nhiều mail những mail chỉ gửi mẫu và không ghi rõ yêu cầu mình sẽ không hỗ trợ được bạn ak.

      Xóa
  20. Nhận xét này đã bị tác giả xóa.

    Trả lờiXóa
  21. Code này ko ẩn ở trang chủ khi mình nhấn vào bài viết cũ hơn hả bạn? Ví dụ khi ở trang http://www.2tekvn.net/ thì ẩn được nhưng khi chuyển qua thế này thfi ko ẩn được: http://www.2tekvn.net/search?updated-max=2014-05-19T08:09:00-07:00&max-results=28. Có cách nào cho ẩn khi mình nhấn vào link xem các bài viết cũ hơn ko Nam?

    Trả lờiXóa
  22. Nam ơi! mình làm theo thì nó ẩn được ở trang chủ,nhưng khi vào trang label thì lại không thấy nó đâu cả

    Mình muốn nó không hiện ở trang chủ nhưng khi vào trang dạng /search/label/hiddenlabel thì nó vẫn hiển thị thì làm thế nào vậy?

    Thanks nhiều nhé

    Trả lờiXóa
    Trả lời
    1. Trong bước 4 bạn thay đoạn:

      <!-- Điều kiện nếu ở kiểu trang index -->

      <b:if cond='data:blog.pageType == &quot;index&quot;'>

      thành:

      <!-- Điều kiện nếu ở kiểu trang chủ -->
      <b:if cond='data:blog.url == data:blog.homepageUrl'>

      Xóa
  23. Nó không ẩn mà lại hiển thị nhân đôi lên luôn anh ơi :((

    Trả lờiXóa
  24. Hi An Thành! phiền bạn xem và chỉ mình sữa lỗi này với: http://nangluongmattroimn.blogspot.com/ trong các nhãn "máy nước nóng năng lượng mặt trời, bộ lọc nước RO....,bồn nước lạnh....,....có các mục "XEM TẤT CẢ" bên dưới nhưng khi mình click vô xem tất cả thì các sản phẩm trong mỗi nhãn không hiển thị ra hết các bài viết trên cùng 1 trang và không đồng nhất, có khi 1 nhãn hiển thị ra 3 sản phẩm, có khi 1 nhãn hiển thị ra 5-6 sản phẩm. vd: http://nangluongmattroimn.blogspot.com/search/label/M%C3%A1y%20n%C4%83ng%20l%C6%B0%E1%BB%A3ng%20m%E1%BA%B7t%20tr%E1%BB%9Di. Mong bạn xem và chỉ mình khắc phục với nhé. tks!

    Trả lờiXóa
    Trả lời
    1. Cậu cần phải ngắt dòng trước khi viết bài là ok đó!

      Xóa
    2. Cảm ơn bạn đã hồi âm, mình đã làm theo nhưng vẫn không khắc phục được bạn ah, có cách nào khác không? giúp mình với. Mình cũng đã làm theo hướng dẫn http://www.terocket.com/2011/12/sua-loi-khong-phan-trang-khi-xem-theo.html nhưng cũng không được. Nếu có thể phiền bạn vô chỉnh sửa dùm luôn được ko?nếu được mình sẽ phân quyền cho bạn.Mong bạn giúp. tks!

      Xóa
    3. Cậu biết ngắt dòng trong bài viết không?

      Xóa
    4. http://www.terocket.com/2011/12/sua-loi-khong-phan-trang-khi-xem-theo.html. chằng phải bài viết này đã hướng dẫn cách ngắt dòng sao?nằm ở mục 1-3 hình minh họa thứ 2. Mình đã thử ngắt dòng ngay phần kết thúc mota trong bài viết thì hình ảnh ko hiển thị. thử lại cách ngắt dòng trước khi viết bài thì hình ảnh ko hiển thị, thử sang cách thứ 3 ngắt dòng tại hình ảnh đầu tiên thì khi view ra cũng y chang như ban đầu mình đã hỏi. Xin lỗi đã làm phiền bạn. Xin chân thành cảm ơn!

      Xóa
    5. Ngắt dòng trong bài viết mà bạn, đó có phải là ngắt dòng đâu? Đó là ngắt Feed mà

      Xóa
  25. Nhận xét này đã bị tác giả xóa.

    Trả lờiXóa
  26. Mình đã áp dụng nhưng số bài viết hiển thị trên trang chủ ko còn đúng như cài đặt nữa. Mình cài đặt là 9 bài viết hiển thị ở trang chủ nhưng khi post bài mới thuộc nhãn ko cho hiển thị ở trang chủ thì số bài viết ở trang chủ cứ giảm dần

    Trả lờiXóa
  27. Chào bạn. Mình mới tạo trang http://hotroaz.blogspot.com/. Mình có vấn đề sau nhờ bạn giúp đỡ: Mình có tạo một số nhãn" Tài liệu, tài liệu lịch sử, tài liệu KHXH ... (trong nhãn Tài liệu) nhưng khi đăng bài, mình đã gắn các thẻ này vào bài viết nhưng bài lại không hiển thị ở các nhãn này.
    Mình không biết lỗi do đâu. Rất mong được bạn giúp đỡ.
    Mình xin chân thành cảm ơn!

    Trả lờiXóa