Fast Search でカテゴリーの絞込み検索をする

Fast Search でカテゴリーの絞込み検索をする

Posted at April 9,2007 12:55 AM
Tag:[Customize, MovableType, Plugin, Search]

Fast Search でカテゴリーの絞込み検索先週紹介した「Movable Type で高速検索を実現する Fast Search プラグイン」ではオプションとしてカテゴリーの絞込み検索を行うことができます。

このエントリーでは Fast Search の検索フォームにカテゴリー選択のプルダウンメニューを追加する方法をご紹介します。

プラグイン配布元ではカテゴリーで絞込みを行う場合は、検索フォームに、

<input type="hidden" name="category" value="5" />

というような input 属性を追加する説明がありますが、カテゴリー ID はプルダウンメニューから設定できるようにします。

1.デフォルトテンプレートの場合

リストの青色部分が Fast Search の検索フォームに追加した箇所です。

<div class="module-search module">
   <h2 class="module-header">検索</h2>
   <div class="module-content">
      <form method="get" action="<$MTBlogURL$><$MTFastSearchScript>">
         <input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
         <label for="search" accesskey="4">ブログを検索: </label><br />
         <input id="query" name="query" size="20" />
         <select name="category">
            <option value="0">全カテゴリーを検索</option>
            <MTCategories>
            <option value="<$MTCategoryID$>"><MTParentCategories glue=" &gt; "><$MTCategoryLabel$></MTParentCategories></option>
            </MTCategories>
         </select>
         <input type="submit" value="検索" />
      </form>
   </div>
</div>

2.公開テンプレートの場合

<div class="side">
<form method="get" action="<$MTBlogURL$><$MTFastSearchScript>">
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
<label for="search" accesskey="4">ブログを検索: </label><br />
<input id="query" tabindex="5"  accesskey="t" name="query" size="20" value="" /><br />
<select name="category">
<option value="0">全カテゴリーを検索</option>
<MTCategories>
<option value="<$MTCategoryID$>"><MTParentCategories glue=" &gt; "><$MTCategoryLabel$></MTParentCategories></option>
</MTCategories>
</select>
<input type="submit" tabindex="6" accesskey="s" value="Search" />
</form>
</div>

3.注意事項

サンプルで追加したプルダウンメニューは、サブカテゴリーの左側に、">" をセパレータとして親カテゴリーを表示していますが、現実的にはカテゴリー名全体が横に長くなる場合が少なくないと思われます。横に長くなり過ぎると、プルダウンメニューがサイドメニューからはみ出す可能性があります。

カテゴリー名がはみ出さないようにするには、サブカテゴリーのみ表示するように、

<option value="<$MTCategoryID$>"><MTParentCategories glue=" &gt; "><$MTCategoryLabel$></MTParentCategories></option>

の部分を

<option value="<$MTCategoryID$>"><$MTCategoryLabel$></option>

に変更してください。

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)