長年の懸案であった、当ブログの「検索結果が 20件しか表示されない」件について、1ページあたり10件表示でページ分割し、各ページにジャンプ出来るよう対応した。
これで、「あの豚骨ラーメンの美味い店、なんて名前だったっけ?」と「豚骨ラーメン」で検索したら、どうも見たいページは 21件目のようだ・・・という悔しい思いもなくなるぞ!!
・・・って、今どきそんなことしてるのか!?とか言われそうですが(^^;
自社ブログは別に MTOS で何も機能的に困ってないし、ちょっと、中の Perl に手を入れたりしてるんで、移行するのが面倒臭くてズルズルと・・・(^^;
相当ヤバいセキュリティホールとか見つからない限りは、このまま MTOS で行くと思うよ。
「紺屋の白袴」ってヤツです(^^;
ま、それはそれとして、方法をメモっとく。
■mt-config.cgi の編集
SearchMaxResults 10を、追加
■「検索」ウィジェットの編集
検索条件入力フォームのところに、<input type="hidden" name="limit" value="<$MTSearchMaxResults$>" />を追加。
<form method="get" action="<$mt:CGIPath$><$mt:SearchScript$>"><input type="text" id="search" class="ti" name="search" value="<$mt:SearchString$>" /><mt:If name="search_results_template"><input type="hidden" name="IncludeBlogs" value="<$mt:SearchIncludeBlogs$>" /><input type="hidden" name="limit" value="<$MTSearchMaxResults$>" /><ul class="search-options"><li><input type="checkbox" name="CaseSearch" /> 大文字/小文字を区別する</li><li><input type="checkbox" name="RegexSearch" /> 正規表現</li></ul><mt:else><input type="hidden" name="IncludeBlogs" value="<$mt:BlogID$>" /><input type="hidden" name="limit" value="<$MTSearchMaxResults$>" /></mt:if><input type="submit" accesskey="4" value="検索" /></form>
とか。
■「検索結果」システムテンプレートの編集
フッターの前に、ページ送りのタグを追加
<div class="content-nav"><span class="prev"><MTIfPreviousResults><a rel="prev" href="<$MTPreviousLink$>" onclick="return swapContent(-1)">< 前ページ</a><MTElse>< 前ページ</MTIfPreviousResults></span><span class="pager"><MTPagerBlock><MTIfCurrentPage><span class="this-page">●</span><MTElse><a href="<$MTPagerLink$>">○</a></MTIfCurrentPage></MTPagerBlock></span><span class="next"><MTIfMoreResults><a rel="next" href="<$MTNextLink$>" onclick="return swapContent()">次ページ ></a><MTElse>次ページ ></MTIfMoreResults></span></div>
とか。
■サイトを再構築
これしないと、編集した「検索」ウィジェットの内容が静的ページに反映しないからね。
以上で、検索結果の下にページ送りのリンクが表示される。
こんな感じ。
コメントする