News
2008年10月14日
エントリー本文
Movable Type 4.2 検索結果ページのカスタマイズ:検索結果の見出しに(現在のページ/総ページ数)を表示する
Movable Type 4.2 の検索結果ページのカスタマイズで、2回目は「検索結果の見出しに(現在のページ/総ページ数)を表示する」を紹介します。
その2:検索結果の見出しに「現在のページ/総ページ数」を表示する
デフォルトテンプレートでは検索結果がページ分割された場合、「現在のページ/全体のページ数」が表示されないので、現在表示しているページが何ページ目かがちょっと分かりにくいです。

カスタマイズ後はこのように「現在のページ/全体のページ数」を表示します。

表示するには、次のようなサブテンプレートを MTSearchResults タグブロック内の MTSearchResultsHeader タグにある見出し用要素に追加します。
デフォルトテンプレートの場合
<div id="search-results">
<span id="current-page" class="hidden"><$mt:CurrentPage$></span>
<h1 id="page-title" class="search-results-header">
<mt:IfStraightSearch>
「<$mt:SearchString$>」と一致するもの
</mt:IfStraightSearch>
<mt:IfTagSearch>
タグ「<$mt:SearchString$>」が付けられているもの
</mt:IfTagSearch>
(<mt:currentPage>/<mt:totalPages />)
</h1>
配布テンプレートの場合(設定済み)
<h2 class="search-results-header">
<mt:ifStraightSearch>
「<mt:searchString />」
</mt:ifStraightSearch>
<mt:ifTagSearch>
タグ「<mt:searchString />」
</mt:ifTagSearch>
の検索結果(<mt:currentPage>/<mt:totalPages />)
</h2>
補足ですが、検索結果テンプレートは、ブログ検索・タグ検索で共通なので、見出し要素の内容は、ブログ検索・タグ検索のいずれかで出力内容を振り分けています。したがって、「現在のページ/総ページ数」を表示するタグは、ブログ検索・タグ検索の振り分けに依存しないよう、見出し要素の終了タグの直前に設定しています。
ページ分割しないときは表示しない
上記の設定では、検索結果でページ分割しないときも、次のように(1/1)という表示が出力されてしまいます。

ページ分割がないときに「現在のページ/全体のページ数」を表示したくない場合は、追加したタグを MTIf タグで括ると良いでしょう。
<h2 class="search-results-header">
<mt:ifStraightSearch>
「<mt:searchString />」
</mt:ifStraightSearch>
<mt:ifTagSearch>
タグ「<mt:searchString />」
</mt:ifTagSearch>
の検索結果<mt:if tag="totalPages" ne="1">(<mt:currentPage>/<mt:totalPages />)</mt:if>
</h2>
関連記事
Posted by yujiro
ReTweet This!
この記事を読んだ人はこんな記事も読んでいます
人気エントリー
Hatena Hot Entries
Hatena Entries
トラックバックURL
トラックバック
≫ 「検索結果」を記事タイトルとページ分割で表示する from Nakamura's Weblog
このブログの検索結果画面の見栄えが悪く気になっていたのですが、ようやく見直しをし... [続きを読む]
Tracked on May 3, 2009 12:27 AM
コメントする
greeting
