Hot Post

Tổng hợp các trường hợp sử dụng thẻ điều kiện If - Else trong Blogger


Blogger Conditional Tag — b:if and b:else

Thẻ điều kiện trong Blogger được sử dụng để kiểm tra 1 sự kiện. Nếu chúng thỏa điều kiện thì sẽ thực thi một hành động, ngược lại sẽ là một hành động khác được thực hiện. Đây là cách tuyệt vời để để làm những việc như ẩn các tiện ích, css, javascript, html... nhằm giải quyết các vấn đề cần thiết khi tối ưu cũng như thực hiện việc SEO trên Blogger và giúp bạn có một website vượt trội hơn trong quá trình sử dụng Blogger. Với việc bạn nắm vững các điều kiện này thì Iris Tips tin tưởng bạn sẽ tối ưu được toàn bộ trang Blogger của bạn.

Tổng hợp các trường hợp sử dụng thẻ điều kiện If - Else trong Blogger

Sử dụng thẻ điều kiện để làm gì?

1. Bạn hoàn toàn có thể tối ưu, thêm title, description vào bất kỳ trang nào mà bạn muốn.
2. Tối ưu và chặn index các trang nội dung kém.
3. Tối ưu việc hiển thị nội dung, đưa thêm nội dung hỗ trợ quá trình SEO Homepage và Nhãn (Label)...

Cú pháp sử dụng thẻ điều kiện trong Blogger

 <b:if cond='Điều kiện'>
// Nội dung hiển thị
</b:if> 
 <b:if cond='Điều kiện'>
// Nội dung hiển thị
<b:else/>
// Nội dung hiển thị
</b:if> 
- Câu lệnh IF: Thực hiện 1 số câu lệnh khi điều kiện đưa ra là đúng.
- Câu lệnh IF…ELSE: Thực hiện 1 số câu lệnh khi điều kiện đúng và 1 số câu lệnh khác nếu điều kiện là sai.

Lưu ý: Câu lệnh <b:if><b:else/> chỉ hoạt động trong trang HTML/XML của Blogger, không hoạt động trong HTML/JS widget.

Danh sách các trường hợp sử dụng thẻ điều kiện <b:if> trong Blogger

1. Hiển thị nội dung chỉ trên trang Item (trang bài viết)
 <b:if cond='data:blog.pageType == &quot;item&quot;'>...nội dung...</b:if> 

2. Hiển thị nội dung chỉ trên trang Static (trang tĩnh)
 <b:if cond='data:blog.pageType == &quot;static_page&quot;'>...nội dung...</b:if> 

3. Hiển thị nội dung trên trang Static với tên chỉ định (ví dụ: blogger)
<b:if cond='data:blog.url == data:blog.canonicalHomepageUrl + &quot;p/blogger.html&quot;'>...nội dung...</b:if>

4. Hiển thị nội dung chỉ trên trang index (trang chủ, trang label (Danh mục), trang lưu chữ (archive))
 <b:if cond='data:blog.pageType == &quot;index&quot;'>...nội dung...</b:if> 

5. Hiển thị nội dung chỉ trên trang archive (trang lưu trữ)
 <b:if cond='data:blog.pageType == &quot;archive&quot;'>...nội dung...</b:if> 

6. Hiển thị nội dung chỉ trên homepage (trang chủ)
 <b:if cond='data:blog.url == data:blog.homepageUrl'>...nội dung...</b:if> 

7. Hiển thị nội dung chỉ trên URL tùy chỉnh
 <b:if cond='data:blog.url == &quot;URL-tuy-chinh&quot;'>...nội dung...</b:if> 
- Lưu ý: Bạn cần đặt URL dạng đầy đủ, ví dụ:
http://iris-tips.blogspot.com/2015/04/hello.html
- Không sử dụng relative URL, ví dụ:
/2015/04/hello.html

8. Hiển thị nội dung khi có Backlink
 <b:if cond='data:post.showBacklinks'>...nội dung...</b:if> 

9. Hiển thị nội dung với Tên hiển thị cụ thể (ví dụ Tác giả bài viết)
 <b:if cond='data:displayname == &quot;Tên_hiển_thị&quot;'>...nội dung...</b:if> 

10. Hiển thị nội dung khi có một số lượng bình luận nhất định
 <b:if cond='data:post.numComments == [number_here]'>...content...</b:if> 
Bạn có thể thay thế == bằng < (nhỏ hơn) hoặc > (lớn hơn) hoặc <= (nhỏ hơn hoặc bằng) hoặc >= (lớn hơn hoặc bằng)
[number_here] là 1 số nguyên không âm, ví dụ: 1, 2, 3...

Lưu ý: đối với dấu < (nhỏ hơn) và > (lớn hơn) chúng ta cần phải mã hóa chúng:
- Nhỏ hơn < thành &lt;
- Lớn hơn > thành &gt;

11. Hiển thị nội dung khi có jump link ("read more" link):
 <b:if cond='data:post.hasJumpLink'>...nội dung...</b:if> 

12. Hiển thị nội dung khi mở chức năng bình luận:
 <b:if cond='data:post.allowComments'>...nội dung...</b:if> 

13. Hiển thị nội dung chỉ trên trang Nhãn (Label)
 <b:if cond='data:blog.searchLabel'>...nội dung...</b:if> 

14. Hiển thị nội dung cho Nhãn (Label) được chỉ định (ví dụ: Blogger)
 <b:if cond='data:blog.searchLabel == &quot;Blogger&quot;'>...nội dung...</b:if> 

15. Hiển thị nội dung cho những trang có nhiều bài viết trên cùng một trang, áp dụng này cho bài viết đầu tiên:
 <b:if cond='data:post.isFirstPost'>...nội dung...</b:if> 

16. Hiển thị nội dung khi mở chức năng bình luận:
 <b:if cond='data:post.allowComments'>...nội dung...</b:if> 

17. Hiển thị nội dung chỉ trên trang Tìm kiếm (Search)
 <b:if cond='data:blog.searchQuery'>...nội dung...</b:if>

18. Hiển thị nội dung cho Tìm kiếm từ khóa được chỉ định (ví dụ: http://iris-tips.blogspot.com/search?q=Blogger)
 <b:if cond='data:blog.searchQuery == &quot;Blogger&quot;'>...nội dung...</b:if> 

19. Hiển thị nội dung khi truy cập bằng mobile:
<b:if cond='data:blog.isMobile'>...nội dung...</b:if>

20. Hiển thị nội dung khi truy cập bằng máy tính (desktop), ẩn khi truy cập bằng mobile:
 <b:if cond='data:blog.isMobileRequest == &quot;false&quot;'>...nội dung...</b:if>

21. Hiển thị nội dung chỉ trên trang Báo lỗi (Error 404 Page)
<b:if cond='data:blog.pageType == &quot;error_page&quot;'>...nội dung...</b:if>


22. Hiển thị một hình ảnh trước tiêu đề khi bài viết mang một nhãn chỉ định (ví dụ: hiện thị hình ảnh bông hoa trước các bài viết có chứa nhãn Flower)
<b:if cond='data:post.labels any (l => l.name == "Flower")'>
  <img src='/img/flower.jpg' />
<b:if/>


23. Hiển thị nội dung dựa vào PAGE_ID hoặc POST_ID
<b:if cond='data:blog.pageId == "PAGE_ID"'>...nội dung...</b:if>

<b:if cond='data:blog.pageId == "POST_ID"'>...nội dung...</b:if>


Tổng hợp các trường hợp sử dụng thẻ điều kiện If - Else trong Blogger

So sánh khác:

Dấu == là điều kiện so sánh bằng (TRUE), bạn cũng có thể áp dụng thêm kiểu so sánh khác (FALSE) !=
Ví dụ: Hiển thị một nội dung trên tất cả các trang ngoại trừ Trang chủ (Homepage)
 <b:if cond='data:blog.url != data:blog.homepageUrl'>
...nội dung...
</b:if>
 

Thế còn điều kiện rẽ nhánh: <b:else/>

Nó được đặt bên trong thẻ <b:if>
Bạn có thể xem qua ví dụ sau:
 <b:if cond='data:blog.url == data:blog.homepageUrl'>
    [...nội dung 1...]
    <b:else/>
    [...nội dung 2...]
</b:if> 
Lệnh trên có nghĩa là hiển thị nội dung 1 trên trang chủ. Nếu không phải là trang chủ thì hiển thị nội dung 2.

Điều kiện <b:if> có thể được xếp chồng lên nhau

Ví dụ:
 <b:if cond='data:blog.pageType == &quot;item&quot;'>
    <b:if cond='data:blog.url != &quot;URL-tuy-chinh&quot;'> 
        [...nội dung 1...]
        <b:else/>
        [...nội dung 2...]
    </b:if>
</b:if> 
Lệnh trên có nghĩa là nội dung 1 sẽ hiện thị trên trang bài viết (item page), nhưng sẽ không hiện trên URL tùy chỉnh. Và khi trang là trang bài viết và có các URL tùy chỉnh đã nêu, sẽ hiển thị nội dung 2.

Sử dụng <b:if> cho tiện ích (widget)

Thật ra chúng ta sử dụng lệnh <b:if><b:else/> để điều khiển sự xuất hiện của tiện ích.

Bạn cần đi đến Mẫu >> Chỉnh sửa HTML và tìm (jump) đến widget bạn cần chỉnh sửa.

Ví dụ bạn cần chỉnh sửa tiện ích có id là HTML1, sau khi tìm đến tiện ích này sẽ có mẫu như sau:
 <b:widget id='HTML1' locked='false' title='' type='HTML'>
    <b:includable id='main'>
      <!-- only display title if it's non-empty -->
      <b:if cond='data:title != &quot;&quot;'>
          <h2 class='title'><data:title/></h2>
      </b:if>
      <div class='widget-content'>
          <data:content/>
      </div>
      <b:include name='quickedit'/>
    </b:includable>
</b:widget> 

Để điều khiển sự xuất hiện của tiện ích HTML1 bạn cần đặt thẻ <b:if> ngay sau thẻ <b:includable> và đặt thẻ đóng </b:if> ngay trước thẻ đóng </b:includable>

Ví dụ:
 <b:widget id='HTML1' locked='false' title='' type='HTML'>
    <b:includable id='main'>
        <b:if cond='data:blog.pageType == &quot;item&quot;'>
            <!-- only display title if it's non-empty -->
            <b:if cond='data:title != &quot;&quot;'>
                <h2 class='title'><data:title/></h2>
            </b:if>
            <div class='widget-content'>
                <data:content/>
            </div>
            <b:include name='quickedit'/>
        </b:if>
    </b:includable>
</b:widget> 

Ở ví dụ trên tiện ích HTML1 sẽ chỉ xuất hiện trên trang item.

Chỉnh sửa nội dung tiện ích (widget)

Bạn có thể nội dung tiện ích HTML1 từ trang Bố cục Blogger hoặc chỉnh sửa <data:content/> với nội dung tùy chỉnh của bạn - không khuyến khích thực hiện cách này. Chỉ thực hiện khi bạn có đủ tự tin để mày mò Blogger template.

Bạn có thể tham khảo ví dụ sau:
 <b:widget id='HTML1' locked='false' title='' type='HTML'>
    <b:includable id='main'>
        <b:if cond='data:blog.pageType == &quot;item&quot;'>
            <!-- only display title if it's non-empty -->
            <b:if cond='data:title != &quot;&quot;'>
                <h2 class='title'><data:title/></h2>
            </b:if>
            <div class='widget-content'>
                Ghi nội dung tại đây (script hoặc bất kỳ cái gì)
            </div>
            <b:include name='quickedit'/>
        </b:if>
    </b:includable>
</b:widget> 

Ví dụ với thẻ <b:else/>:
 <b:widget id='HTML1' locked='false' title='' type='HTML'>
    <b:includable id='main'>
        <b:if cond='data:blog.pageType == &quot;item&quot;'>
            <!-- only display title if it's non-empty -->
            <b:if cond='data:title != &quot;&quot;'>
                <h2 class='title'><data:title/></h2>
            </b:if>
            <div class='widget-content'>
                <data:content/> hoặc Nội dung 1
            </div>
            <!--[#1] place it here-->
            <b:else/> 
            Nội dung 2
            <b:include name='quickedit'/>     
            <!--[#2] or here-->
            <b:else/>
            Nội dung 2
        </b:if>
    </b:includable>
</b:widget> 


Sử dụng cho CSS hoặc Script

Ngoài tiện ích (widget) ra thẻ điều kiện <b:if> còn có thể sử dụng cho CSS và Script. Bạn có thể xem ví dụ sau về CSS (script cũng tương tự như thế)
 <b:if cond='data:blog.pageType == &quot;item&quot;'>
     <style>
          /*styling của bạn*/
     </style>
</b:if> 

So sánh, thêm bớt

- Thêm hoặc ghép các giá trị với nhau: +
- Loại bỏ giá trị với: -
- So sánh các giá trị với nhau:
+ So sánh bằng và so sánh khác: ==!=
+ So sánh hơn kém: <, > ,<=>=

Các cấu trúc điều kiện mới trong Blogger

Đảo ngược các điều kiện

Chúng ta sử dụng ! để đảo ngược các điều kiện. Ví dụ <b:if cond='!data:post.allowComments'>... là nếu không đồng ý mở chức năng bình luận.

Chọn giữa 2 giá trị

Chọn giữa 2 giá trị bằng cách sử dụng ?. Ví dụ <a expr:class='data:post.allowComments ? &quot;comments&quot; : &quot;no-comments&quot;' ...

Kiểm tra xem giá trị là một thành viên của một tập hợp hoặc mảng

Ví dụ: <b:if cond='data:blog.pageType in {&quot;index&quot;, &quot;archive&quot;}'>...

Kết hợp các điều kiện với nhau

Ví dụ: <b:if cond='data:blog.pageType == &quot;index&quot; and data:post.allowComments'>...

Lời kết

Với một ít thủ thuật trong sử dụng câu lệnh điều kiện if-else bạn đã có thể tối ưu gần như toàn bộ các vấn đề trong SEO On-Site mà Google chưa hỗ trợ. Chúng ta hoàn toàn có thể tối ưu tất cả các trang mà mình muốn, bạn sẽ có một lời thế nhất định trong SEO.

Nếu có bất kỳ vấn đề khó khăn hay câu hỏi gì, bạn đừng ngần ngại, hãy để lại bình luận ở form bên dưới nhé.
Chúc bạn thành công!

Created by Iris Tips
Đăng ký nhận tin khuyến mãi, thủ thuật mới

Mẹo nhỏ khi bình luận
  • - Để viết chữ in đậm hãy sử dụng thẻ <b>chữ in đậm</b>
  • - Để viết chữ in nghiêng hãy sử dụng thẻ <i>chữ in nghiêng</i>
  • - Để viết code hãy sử dụng công cụ Conversion ở bên dưới để mã hóa và sau đó dán vào khung bình luận.
  • - Để chèn hình ảnh, video chỉ cần dán link trực tiếp của hình ảnh hoặc video vào khung bình luận (hỗ trợ: jpg, gif, png, bmp, Youtube).
  • - Bạn có thể upload hình ảnh, tập tin trực tiếp từ máy tính bằng cách sử dụng công cụ Up ảnh hoặc Up file ở bên dưới.
  • - Bạn có thể check vào ô Notify me ở khung nhận xét để nhận thông báo qua email khi ai đó trả lời bình luận của bạn.

6 Comments

  1. bài viết quá hay. Làm thế nào để ẩn widget trên tất cả các trang nhãn và trang lưu trữ vậy?

    Trả lờiXóa
    Trả lời
    1. Bạn có thể tham khảo điều kiện 3, 4 sửa == thành != hoặc sử dụng kết hợp các điều kiện 1, 2, 5

      Xóa
    2. Nếu muốn ẩn luôn sidebar cho đẹp thì bạn có thể xem thêm bài viết này.
      http://iris-tips.blogspot.com/2015/10/an-widget-sidebar-tao-trang-bai-viet-full-width.html

      Xóa
  2. Đã cập nhật thêm một vài thẻ điều kiện mới nhé :)

    Trả lờiXóa
  3. Mình dùng thẻ để ẩn quảng cáo không xuất hiện ở mobie nhưng không được, nó mất luôn trên desktop lẫn mobie

    Trả lờiXóa
    Trả lời
    1. Thẻ điều kiện lỗi thì bạn có thể dùng CSS để thay thế cũng được
      <style type='text/css'>
      @media only screen and (min-width:640px){
      .quangcao{display:block}}
      @media only screen and (max-width:480px){
      .quangcao{display:none!important}}
      </style>

      <div class="quangcao">
      //dat code quang cao cua ban o day


      </div>

      Xóa

Đăng nhập bằng Google


Cùng tham gia bình luận bài viết này nhé!