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("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>
+ Đoạn mã dùng để hiển thị dấu sao đặt trong <b:includable id='post' var='post' />
+ Đ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.
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 ^^!)
0 nhận xét: