Đối với 1 số trang blog hay webblog có số lượng comment vượt hơn 200 nhận xét thì thường phát sinh 1 số vấn đề ở comment vì mặc định comment form của blogger chỉ load 200 nhận xét. Đề giải quyết vấn đề này thì phân trang cho comment là một phương án giải quyết khá hữu hiệu.


1. Chèn đoạn css sau phía trên thẻ ]]></b:skin>
.commentnavi{clear:bold; margin:10px 0;}
.commentnavi .page-first{float:left; margin-right:5px}
.commentnavi .page-items{float:right}
.commentnavi .page-number, .commentnavi .page-next{margin-left:5px}
.commentnavi .page-number, .commentnavi .page-prev{margin-right:5px}
.commentnavi .selected{box-shadow:0 0 3px 1px #333; padding: 5px}
2. Tìm đoạn code sau: (có 2 đoạn nhưng chỉ làm việc với đoạn ở trên)
<h4><data:post.commentLabelFull/>:</h4>
Chèn đoạn code sau vào phía dưới đoạn code tìm được ở trên.
<b:if cond='data:post.numComments > 200'>
<div class='commentnavi' id='commentnavi'/>
 <script type='text/javascript'>
var numcomments='<data:post.numComments/>';
//<![CDATA[
var current;numshowpage=3;prev='«';next='»';pagefirst='Page';pageitems='Comments';dw='';urlactivepage=location.href;numpage=parseInt((numcomments-1)/200)+1;urlpost=urlactivepage.split('.html');urlpost=urlpost[0]+'.html';if(urlactivepage.indexOf('?commentPage=')==-1){current=1}else{current=parseInt(urlactivepage.substring(urlactivepage.indexOf('?commentPage=')+13))}var integer=parseInt(numshowpage/2);if(integer==numshowpage-integer){numshowpage=integer*2+1}first=current-integer;if(first<1){first=1}last=first+numshowpage-1;if(last>numpage){last=numpage;if((last-first+1)<numshowpage){first=last-numshowpage+1;if(first<1){first=1}}}if(current*200<=numcomments){dw+='<span class="page-items">'+(((current-1)*200)+1)+' - '+(current*200)+' / '+numcomments+' '+pageitems+'</span>'}else{if((((current-1)*200)+1)==numcomments){dw+='<span class="page-items">'+numcomments+' / '+numcomments+' '+pageitems+'</span>'}else{dw+='<span class="page-items">'+(((current-1)*200)+1)+' - '+numcomments+' / '+numcomments+' '+pageitems+'</span>'}}dw+='<span class="page-first">'+pagefirst+'</span>';if(current>1){dw+='<a class="page-prev" href="'+urlpost+'?commentPage='+(current-1)+'#comments">'+prev+'</a>'}if(first>1){dw+='<a class="page-number" href="'+urlpost+'?commentPage=1#comments">1</a>'}if(first>2){dw+='<span class="gap">&#133;</span>'}for(i=first;i<=last;i++){if(i==current){dw+='<span class="selected">'+i+'</span>'}else{dw+='<a class="page-number" href="'+urlpost+'?commentPage='+i+'#comments">'+i+'</a>'}}if(last<numpage-1){dw+='<span class="gap">&#133;</span>'}if(last<numpage){dw+='<a class="page-number" href="'+urlpost+'?commentPage='+numpage+'#comments">'+numpage+'</a>'}if(current<numpage){dw+='<a class="page-next" href="'+urlpost+'?commentPage='+(current+1)+'#comments">'+next+'</a>'}var a=document.getElementById('commentnavi');a.innerHTML=dw;
//]]>
  </script>
</b:if>
Save Template lại là hoàn thành.
Chú ý:
numshowpage=3; là số trang hiển thị.
Phân trang chỉ hiện khi bài viết có trên 200 nhận xét, nên nếu bài viết dưới 200 nhận xét thì đừng hỏi sao không thấy.
Thủ thuật này mình edit lại từ phân trang comments trên blog duypham. Đã chỉnh sửa một số code. Hoạt động tốt trên thread comments của blogger.
Nguồn bài viết: Duy Pham Blog

Post a Comment

Chú ý:
- Nhận xét nên viết tiếng việt có dấu.
- Cảm ơn bạn đã đọc bài viết tại www.hannavn.com