3 tháng 11, 2019

Phân loại Pages trong Blogger bằng code

Phan loai Pages trong Blogger bang code

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.

    1/ Blogger Conditional Tags
      2/ Hướng dẫn sử dụng
      3/ Đả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 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ì.


      Chúc các bạn thành công.

      Related Posts