20080829
何日か前から各ページのサイドエリアにiPhone特設コーナーを設置しています。
これですね。iPhoneの情報を探しにきた人が、すんなりとお目当てのコンテンツに行きつけるようにという、少しばかりの気遣いです。
で、これをどのように動かしているかというと、実は「iPhone」というタグが付いているエントリーをmt-search.cgiを利用して抽出する方法で絞り込んでいます。検索窓に「iPhone」と打ち込んだ場合の「検索結果ページ」を利用しているということですね。ですから、意図的に抽出対象のエントリーに同じタグを使うことで、そのほかの特設ページを追加することも容易です。
ただ、この方法だと常に全ての該当エントリーを抽出してしまうために、ページがものすごい長さになってしまうという欠点があります。そこで、MTPaginateプラグインを使ってページ分割をしてみることにしました。ちょうどphp化してあるし、比較的楽な作業でした。
具体的な記述はこんな感じです。
<MTPaginate mode="cgi"> <MTPaginateContent max_sections="5"> <MTSearchResults> <div class="search-results-container"> <$MTInclude module="ブログ記事の概要"$> </div> <$MTPaginateSectionBreak$> </MTSearchResults> </MTPaginateContent> <MTPaginateIfMultiplePages> <div class="paginate"> <MTPaginateIfPreviousPage_> <a href="<$MTPaginatePreviousPageLink$>">前のページ</a> </MTPaginateIfPreviousPage_> <$MTPaginateNavigator$> <MTPaginateIfNextPage_> <a href="<$MTPaginateNextPageLink$>">次のページ</a> </MTPaginateIfNextPage_> </div> </MTPaginateIfMultiplePages> </MTPaginate>
導入に成功すれば、これまでずら~っと全てが抽出されていた検索結果がちゃんと5つごとに分割されているかと思います。ちなみにmax_sectionsの数字を弄れば3ごととか10ごとに分割することも可能です。
ちょっと説明がわかりづらいかもしれませんが、半分は個人的メモの意味もあるのでごかんべんを!さりげなく、詳細な説明のある小粋空間さんに誘導しておきますwよろしくお願いいたします。