エンジニアブログ

エンジニアブログ
Movable Type プラグイン

MTの検索結果でブログ串刺しソート(他)を実現する:SortSearchResultsAcrossBlog

ぴろり上西 2007年10月29日

 MovableType の標準の検索エンジンでは, エントリの作成日時やタイトルでソートすることはできても, それはあくまでブログ単位でエントリのソートが行われるだけです。
 というわけで(?)検索結果の表示において, ブログを横断してエントリのソートを可能にするプラグインを書いてみました。 ついでに検索結果を日付で絞る機能も提供しています。

プラグインのダウンロード

SortSearchResultsAcrossBlog 1.11: ダウンロード

プラグインのインストール

 ダウンロードしたアーカイブを解凍してSortSearchResultsAcrossBlog.plを MovableTypeのpluginsディレクトリ以下にアップロードしてください。 設定などは必要ありません。

プラグインの利用方法

 プラグインによって新しく追加される MTSortSearchResultsAcrossBlog コンテナタグを用いて MTSearchResults コンテナタグを囲むことで,表示される検索結果を再ソートすることができます。 通常はブログ毎にグルーピングされてしまう検索結果を, ブログに関係なく記事の投稿日時やタイトルなどでソートすることができます。
 また,期間を指定することで,その期間に含まれる記事のみ抽出することもできます。

 実際のところ MTSearchResults とセットで使って検索結果を表示するくらいにしか使えません。

MTSortSearchResultsAcrossBlog コンテナタグ
 MTSearchResults コンテナタグで表示される検索結果を 事前にソートしなおすためのコンテナタグです。 検索に使用されたSearchSortByとResultDisplayクエリパラメータを再利用して ブログ毎のグルーピングに関係なくソートしなおします。
 検索パラメータにDateLimitを追加するか,タグのオプションにdate_limitを指定すると, 検索結果のうちで指定された期間に含まれないエントリを排除することができます。
date_limit=200710-
2007年10月01日00時00分00秒以降に投稿された記事のみ結果に表示します
date_limit=-200710
2007年10月31日23時59分59秒以前に投稿された記事のみ結果に表示します
date_limit=2007-2008
2007年~2008年中に投稿された記事のみ結果に表示します
MTSearchDateLimitFrom/MTSearchDateLimitTo 変数タグ
 DateLimit クエリパラメータまたは date_limit オプションで期間指定がされた場合, 指定された開始時期と終了期間を返します。
MTSearchIfDateLimit 条件タグ
 DateLimitにハイフン(-)による範囲指定が行われた場合に真となります。

注意事項

  • DateLimit による記事の抽出は,標準の検索機構によって抽出された記事に対して,更に処理を行っています。そのため,ブログ全体から指定された日付による記事を漏れなく抽出するなどの使途においては,MaxResults値を非常に大きく設定してやる必要があります。
  • なので,パフォーマンスはかなり良くありません。
  • MT3.35,MTE1.53で動作確認済みです。
  • 本プラグインをご利用される方は必ずプラグインご利用の際の注意事項をお読みください。