Thứ Năm, 7 tháng 7, 2016

Sửa lỗi không hiển thị xếp hạng theo dấu sao Blogger

Đăng Bởi: Star xinit - tháng 7 07, 2016 - 0 Bình Luận

Sửa lỗi không hiển thị xếp hạng theo dấu sao Blogger

Xếp hạng theo dấu sao là một tiện ích giúp người đọc có thể nhanh chóng đưa ra nhận xét về bài viết trên website/blog. Blogger từ lâu đã có tiện ích này, nếu bạn đã sử dụng nó có thể dễ dàng tắt/bật nó trong mục Chỉnh sửa Bài đăng trên Blog mà không gặp bất kỳ trục trặc gì.
Sửa lỗi không hiển thị xếp hạng dấu sao Blogger

Tuy nhiên, sau đợt cập nhật vừa rồi, không hiểu do nguyên nhân gì mà các Blogger mới tạo đều không có lựa chọn "Hiển thị xếp hạng theo dấu sao". Vì vậy mà không thể hiển thị được nó trên blog (cho dù bạn đã áp dụng theo các cách trên mạng)
Nguyên nhân?
1- Đầu tiên là do Blogger rồi :)
2- Do câu lệnh <b:if cond='data:top.showStars'>
  Blogger dùng 2 đoạn mã sau để hiển thị star-ratings:
+ Đoạn script đặt trong <b:includable id='main' var='top' />
<b:if cond='data:top.showStars'>
      <script src='//www.google.com/jsapi' type='text/javascript'/>
      <script type='text/javascript'>
        google.load(&quot;annotations&quot;, &quot;1&quot;, {&quot;locale&quot;: &quot;<data:top.languageCode/>&quot;});
        function initialize() {
          google.annotations.setApplicationId(<data:top.blogspotReviews/>);
          google.annotations.createAll();
          google.annotations.fetch();
        }
        google.setOnLoadCallback(initialize);
      </script>
</b:if>
+ Đoạn mã dùng để hiển thị dấu sao đặt trong <b:includable id='post' var='post' />
<span class='star-ratings'>
   <div expr:g:background-color='data:backgroundColor' expr:g:text-color='data:textColor' expr:g:url='data:post.absoluteUrl' g:height='42' g:type='RatingPanel' g:width='280'/>
</span>
Vì vậy thiếu 1 trong 2 đoạn mã trên sẽ không hiển thị được dấu sao.
Cách khắc phục:
1- Đợi Blogger cập nhập
2- Đơn giản là thay/xóa nó đi thôi
Như đã nói ở trên, do không check được dấu trong Bố cục mà câu lệnh <b:if cond='data:top.showStars'> không thực thi được -> javascript không chạy, vì vậy cần xóa/thay câu lệnh này đi.
Tìm <b:if cond='data:top.showStars'>
Xóa đi hoặc thay bằng
<b:if cond='data:blog.pageType == "item"'>
Nếu bạn muốn nó chỉ hiện ở trang bài viết.
Hoặc
<b:if cond='data:blog.pageType == "index"'>
Nếu muốn hiển thị ở trang chủ.
Hoặc:
<b:if cond='data:blog.pageType == "data:post.url"'>
Nếu muốn hiển thị nó ở trang tĩnh và trang bài viết .
Xong bước 1! Sau khi javascript đã được cho phép chạy, bạn cần đoạn mã để hiển thị nó ra bài viết, đây là đoạn mã thực thi điều đó:
<span class='star-ratings'>
<b:if cond='data:blog.pageType == "data:post.url"'>
   <div expr:g:background-color='data:backgroundColor' expr:g:text-color='data:textColor' expr:g:url='data:post.absoluteUrl' g:height='42' g:type='RatingPanel' g:width='280'/>
</b:if>
</span>
Chèn đoạn này vào chỗ nào bạn muốn hiển thị nó, chẳng hạn như sau thẻ <div class='post-header'> hoặc <div class='post-footer'> hoặc <div class='post-footer-line-1'> (thường mặc định nó ở footer)
có thể xóa hoặc tùy chỉnh code màu đỏ theo ý bạn.
Xong ! đã sửa lỗi  rồi đó, chúc các bạn thành công !:D .
Test ngay ở bài  này nè :) (Chỉ áp dụng cho bài này thôi ^^!)

Phản Hồi Độc Giả

Một số lưu ý khi bình luận

Mọi bình luận sai nội quy sẽ bị xóa mà không cần báo trước (xem nội quy)

Bấm Thông báo cho tôi bên dưới khung bình luận để nhận thông báo khi admin trả lời

Để bình luận một đoạn code, hãy mã hóa code trước nhé