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ì.
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' />
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
Hoặc
Hoặc:
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 đó:
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 ^^!)
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'>+ Đoạn mã dùng để hiển thị dấu sao đặt trong <b:includable id='post' var='post' />
<script src='//www.google.com/jsapi' type='text/javascript'/>
<script type='text/javascript'>
google.load("annotations", "1", {"locale": "<data:top.languageCode/>"});
function initialize() {
google.annotations.setApplicationId(<data:top.blogspotReviews/>);
google.annotations.createAll();
google.annotations.fetch();
}
google.setOnLoadCallback(initialize);
</script>
</b:if>
<span class='star-ratings'>Vì vậy thiếu 1 trong 2 đoạn mã trên sẽ không hiển thị được dấu sao.
<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>
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'>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)
<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>
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 ^^!)
Không có nhận xét nào:
Đăng nhận xét