2ちゃんねるの「Blogger」スレに面白い質問が。
タグに「風景」とか「人物」を指定して、例えば「人物」をクリックすると
人物のタグがついた記事が全部表示されてしまいますよね?
表示される記事の数を1ページにつき何個までと指定できますか?
クリボウの写真日記 を例にすると、
クリボウの写真日記: 昆虫 というラベルページには、「昆虫」とラベルをつけた投稿全てが一つのページに表示されています。
このラベルページでの投稿表示数を、トップページなどとも合わせて、自分で指定できるようにしたいということだと思うんですが、これは実はけっこう簡単にできます。
投稿表示数の指定方法
それは、ラベルページの URL 末尾に
?max-results=5
とパラメータを付け足すという方法。数字の部分には好きな投稿表示数を指定することができます。先ほどの例なら、
http://kuribo-photo.blogspot.com/search/label/%E6%98%86%E8%99%AB
というラベルページの URL を
http://kuribo-photo.blogspot.com/search/label/%E6%98%86%E8%99%AB?max-results=5
とするだけで、
このとおり、投稿を 5 件だけ表示するページを開くことができます。6 件目以降の投稿も「Older Posts」リンクからちゃんとさかのぼることができます。もちろん、次のページで表示されるのも 6 件目から 10 件目までの 5 つの投稿。なかなかよくできていますね。
ラベルウィジェットのカスタマイズ
とはいえ、ラベルごとにこのパラメータを付加したリンクを用意するのは面倒ですし、ブログ読者に「自分でパラメータつけてね」と要求する訳にもいかないと思います。そこで、ラベルウィジェットのリンクをカスタマイズして、全ラベルページへのリンクを書き換える方法も書いておきます。
1.Blogger 管理画面「テンプレート > HTML の編集」ページを開き、「ウィジットのテンプレートを展開」チェックボックスにチェックを入れます。
2.テキストエリア内から、テンプレートのラベルウィジェット部分を見つけ出します。
id='Label1'
を目印に検索をかけると便利かと。細かい部分は異なるかもしれませんが、こんなコードだと思います。
<b:widget id='Label1' locked='false' title='Labels' type='Label'>
<b:includable id='main'>
<b:if cond='data:blog.pageType != "item"'>
<div class='w-content'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<ul>
<b:loop values='data:labels' var='label'>
<li>
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>
<b:else/>
<a expr:href='data:label.url'><data:label.name/></a>
</b:if>
(<data:label.count/>)
</li>
</b:loop>
</ul>
<b:include name='quickedit'/>
</div>
</div>
</b:if>
</b:includable>
</b:widget>
3.手順2で見つけたコードの赤字部分を、
<a expr:href='data:label.url + "?max-results=5"'><data:label.name/></a>
に変更します。青字部分は好きな数値で OK です。
4.最後に「テンプレートを保存」ボタンを押すと、設定がブログに反映されます。これでおしまい。
以上、ラベルページの投稿表示数を指定する方法でした。一つのラベルの適用投稿数が増えすぎて困っている人なんかにもよさそうですね。ぜひお試しくださーい。