Google Blogger のラベルの一覧の表示件数をurlを変更せずに変更する方法

Google Blogger のラベルをクリックすると、何もしないと20件一覧表示されます。URLを変更せずに件数を指定する方法です。以前は ?max-results=10 や &max-results=10 を付け加えていましたが、問題があるので直接プログラムを変更します。

Google などの検索サイトが ?amp;max-results=10 と判断したり、大量にあるので付け忘れて ?max-results=10 と付いてないものが両方とも Google の検索結果に残ったりしていました。自動でサイトマップを作成するプログラムを使ったり、何かするたびにラベルに max-results=10 を付ける必要があって、面倒でした。

今回はラベル以外の一覧表示も全て10件だけ表示するように変更します。

検索結果の表示件数は以下の修正でできます。検索結果を10件に変更します。
検索結果の表示件数が多すぎる場合

ラベルではなく全体の一覧画面の表示件数については「設定」の「投稿、コメント、共有」の「最大件数で表示」の「メイン ページの に掲載」に入力した数字の件数になります。ここも10と入力して10件だけ表示するようにします。

テーマを編集します。
<b:loop values='data:posts' var='post'>
・・・・・・
・・・(中略)
・・・・・・
</b:loop>
この部分が何度も繰り返してデータを表示する部分になります。テーマによって違いますが、一覧表示は <b:loop を使って繰り返しデータを取得して1件ずつ表示していると思いますので、<b:loop の中から一覧表示部分を探してください。この部分を以下のように変更します。
<b:loop values='data:posts' var='post' index='pi'>
<b:if cond='data:blog.pageType == &quot;archive&quot; or data:pi &lt; 10'>
・・・・・・
・・・(中略)
・・・・・・
</b:if>
</b:loop>
アーカイブページだけは件数制限すると次のページを表示する方法がないので、アーカイブページは何もしない、それ以外は10回を超えると何もしないという条件です。

index='pi' で回数を数える名前をpiと定義しています。iはよく使うので、もし他で使っていると動きがおかしくなるので、piにしています。piも使っているなら別の名前にしてください。

data:pi &lt; 10 は data:pi<10 をエラーが出ないように書き換えたものです。piが10より小さい間だけ処理するという意味です。piは0から始まり、繰り返す度に+1されて、10回目は9になります。11回目は10なので、10を超えると何もしません。

さらにページャーも変更します。ページャーは一覧表示したときに下に表示されるページ数が並んでいて、すぐにそのページに移動できるものです。便利なので、無ければ </body> の前ぐらいに付け加えてください。

Google Blogger 用のページャーを公開しているサイトで、デザインの変更方法などが載っています。
http://mrbloggertricks.blogspot.com/2015/09/how-to-add-next-previous-numbered.html

?max-results や &max-results が無いラベル名だけの場合でも動くように、以下のように変更します。
<b:if cond='data:blog.pageType != &quot;item&quot; and data:blog.pageType != &quot;static_page&quot;'>
<script>
  /*<![CDATA[*/
  var postperpage=10;
  var numshowpage=3;
  var upPageWord ='« 前へ';
  var downPageWord ='次へ »';
  var urlactivepage=location.href;
  var home_page="/";
  /*]]>*/
</script>
<script>
  /*<![CDATA[*/
  var nopage;var jenis;var nomerhal;var lblname1;halamanblogger();function loophalaman(banyakdata){var html='';nomerkiri=parseInt(numshowpage/2);if(nomerkiri==numshowpage-nomerkiri){numshowpage=nomerkiri*2+1}mulai=nomerhal-nomerkiri;if(mulai<1)mulai=1;maksimal=parseInt(banyakdata/postperpage)+1;if(maksimal-1==banyakdata/postperpage)maksimal=maksimal-1;akhir=mulai+numshowpage-1;if(akhir>maksimal)akhir=maksimal;html+="<span class='showpageOf'>Page "+nomerhal+' of '+maksimal+"</span>";var prevnomer=parseInt(nomerhal)-1;if(nomerhal>1){if(nomerhal==2){if(jenis=="page"){html+='<span class="showpage"><a href="'+home_page+'">'+upPageWord+'</a></span>'}else{html+='<span class="showpageNum"><a href="/search/label/'+lblname1+'">'+upPageWord+'</a></span>'}}else{if(jenis=="page"){html+='<span class="showpageNum"><a href="#" onclick="redirectpage('+prevnomer+');return false">'+upPageWord+'</a></span>'}else{html+='<span class="showpageNum"><a href="#" onclick="redirectlabel('+prevnomer+');return false">'+upPageWord+'</a></span>'}}}if(mulai>1){if(jenis=="page"){html+='<span class="showpageNum"><a href="'+home_page+'">1</a></span>'}else{html+='<span class="showpageNum"><a href="/search/label/'+lblname1+'">1</a></span>'}}if(mulai>2){html+=' ... '}for(var jj=mulai;jj<=akhir;jj++){if(nomerhal==jj){html+='<span class="showpagePoint">'+jj+'</span>'}else if(jj==1){if(jenis=="page"){html+='<span class="showpageNum"><a href="'+home_page+'">1</a></span>'}else{html+='<span class="showpageNum"><a href="/search/label/'+lblname1+'">1</a></span>'}}else{if(jenis=="page"){html+='<span class="showpageNum"><a href="#" onclick="redirectpage('+jj+');return false">'+jj+'</a></span>'}else{html+='<span class="showpageNum"><a href="#" onclick="redirectlabel('+jj+');return false">'+jj+'</a></span>'}}}if(akhir<maksimal-1){html+='...'}if(akhir<maksimal){if(jenis=="page"){html+='<span class="showpageNum"><a href="#" onclick="redirectpage('+maksimal+');return false">'+maksimal+'</a></span>'}else{html+='<span class="showpageNum"><a href="#" onclick="redirectlabel('+maksimal+');return false">'+maksimal+'</a></span>'}}var nextnomer=parseInt(nomerhal)+1;if(nomerhal<maksimal){if(jenis=="page"){html+='<span class="showpageNum"><a href="#" onclick="redirectpage('+nextnomer+');return false">'+downPageWord+'</a></span>'}else{html+='<span class="showpageNum"><a href="#" onclick="redirectlabel('+nextnomer+');return false">'+downPageWord+'</a></span>'}}var pageArea=document.getElementsByName("pageArea");var blogPager=document.getElementById("blog-pager");for(var p=0;p<pageArea.length;p++){pageArea[p].innerHTML=html}if(pageArea&&pageArea.length>0){html=''}if(blogPager){blogPager.innerHTML=html}}function hitungtotaldata(root){var feed=root.feed;var totaldata=parseInt(feed.openSearch$totalResults.$t,10);loophalaman(totaldata)}function halamanblogger(){var thisUrl=urlactivepage;if(thisUrl.indexOf("/search/label/")!=-1){if(thisUrl.indexOf("?")!=-1){lblname1=thisUrl.substring(thisUrl.indexOf("/search/label/")+14,thisUrl.indexOf("?"))}else{lblname1=thisUrl.substring(thisUrl.indexOf("/search/label/")+14,thisUrl.length)}}if(thisUrl.indexOf("?q=")==-1&&thisUrl.indexOf(".html")==-1){if(thisUrl.indexOf("/search/label/")==-1){jenis="page";if(urlactivepage.indexOf("#PageNo=")!=-1){nomerhal=urlactivepage.substring(urlactivepage.indexOf("#PageNo=")+8,urlactivepage.length)}else{nomerhal=1}document.write("<script src=\""+home_page+"feeds/posts/summary?max-results=1&alt=json-in-script&callback=hitungtotaldata\"><\/script>")}else{jenis="label";if(urlactivepage.indexOf("#PageNo=")!=-1){nomerhal=urlactivepage.substring(urlactivepage.indexOf("#PageNo=")+8,urlactivepage.length)}else{nomerhal=1}document.write('<script src="'+home_page+'feeds/posts/summary/-/'+lblname1+'?alt=json-in-script&callback=hitungtotaldata&max-results=1" ><\/script>')}}}function redirectpage(numberpage){jsonstart=(numberpage-1)*postperpage;nopage=numberpage;var nBody=document.getElementsByTagName('head')[0];var newInclude=document.createElement('script');newInclude.type='text/javascript';newInclude.setAttribute("src",home_page+"feeds/posts/summary?start-index="+jsonstart+"&max-results=1&alt=json-in-script&callback=finddatepost");nBody.appendChild(newInclude)}function redirectlabel(numberpage){jsonstart=(numberpage-1)*postperpage;nopage=numberpage;var nBody=document.getElementsByTagName('head')[0];var newInclude=document.createElement('script');newInclude.type='text/javascript';newInclude.setAttribute("src",home_page+"feeds/posts/summary/-/"+lblname1+"?start-index="+jsonstart+"&max-results=1&alt=json-in-script&callback=finddatepost");nBody.appendChild(newInclude)}function finddatepost(root){post=root.feed.entry[0];var timestamp1=post.published.$t.substring(0,19)+post.published.$t.substring(23,29);var timestamp=encodeURIComponent(timestamp1);if(jenis=="page"){var alamat="/search?updated-max="+timestamp+"&max-results="+postperpage+"#PageNo="+nopage}else{var alamat="/search/label/"+lblname1+"?updated-max="+timestamp+"&max-results="+postperpage+"#PageNo="+nopage}location.href=alamat}
  /*]]>*/
</script>
</b:if>
これで、アーカイブページ(年や年月のページ)以外は全て10件ずつ表示されるようになります。アーカイブページだけは制限も無く全件表示されてしまいます。

max-results=10 が無くなり、SEO的にもパラメータ無しの短いURLが Google の検索結果として保存されて分かりやすくなります。
この記事のタイトルとURLをコピーする blogger
blogger