« 目次

サイト内検索に関するカスタマイズ

サイト内検索は、サイト内のエントリーやコメントを対象とした検索です。サイト内検索に関するカスタマイズには、次のものがあります。

特定のブログを検索の対象にしたい

特定のブログを検索の対象にするには、次の例のように、検索フォーム内のIncludeBlogsパラメーターに対象とするブログのブログIDを指定します。Movable Typeの標準テンプレートでは、検索フォームを表示しているブログのみを対象としています。

<div class="module-search module">
<h2 class="module-header">検索</h2>
<div class="module-content">
<form method="get" action="<$MTCGIPath$><$MTSearchScript$>">
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
<label for="search" accesskey="4">ブログを検索: </label><br />
<input id="search" name="search" size="20" />
<input type="submit" value="検索" />
</form>
</div>

特定のブログを検索の対象からはずしたい

様々な理由から、特定のブログを検索の対象からはずしたい場合があります。次の例のように、環境変数ExcludeBlogsに、該当のブログのIDを指定することで、検索の対象からはずすことができます。

ExcludeBlogs 1,2,4,7,10

この例では、ブログIDが1、2、4、7、10のブログは検索の対象にはなりません。これらのブログに対する検索は、検索フォームのIncludeBlogsパラメーターに指定することで、検索できるようになります。

検索結果をカスタマイズ

検索結果のカスタマイズは、テンプレートの修正でおこないます。テンプレートは、検索の範囲によって、次のとおり場所が変わります。

システム全体を対象とする検索結果のカスタマイズ

アプリケーション・ディレクトリの下に、search_templatesディレクトリがあります。このディレクトリ内のdefault.tmplファイルをカスタマイズします。新規のコメントを検索の対象にする場合は、comments.tmplファイルです。FTPプログラム等でローカルにバックアップをとり、通常のテンプレートの変更と同様にカスタマイズしていきます。

特定のブログを対象とする検索結果のカスタマイズ

Movable Type 3.3の標準テンプレートには、特定のブログを対象とする検索結果を出力するテンプレートが、システム・テンプレートとして追加されています。他のテンプレートと同様にカスタマイズしていきます。

以前のバージョンのテンプレートを利用している場合は、Template Backup and Replaceプラグインを使い、最新のテンプレート・デザインに更新する必要があります。

代替テンプレート

複数のブログで、検索結果のテンプレートを共通にする方法に、代替テンプレートがあります。これは、前述の方法と異なり、検索フォームの中で、検索結果テンプレートを指定するものです。代替テンプレートの設定は、次のとおりです。

  1. 代替テンプレートの作成

    標準の検索結果テンプレートを元に、テンプレートを作成します。

  2. 代替テンプレートのアップロード

    作成したテンプレートを、FTPクライアント等でアップロードします。アップロード先は、アプリケーション・ディレクトリの下の、search_templatesディレクトリです。

  3. 代替テンプレートの登録

    代替テンプレートの登録は、環境設定ファイルmt-config.cgiに対して行います。たとえば、作成したテンプレートのファイル名が、altsearch.tmplだった場合、mt-config.cgiに次のとおり記述します。

    AltTemplate altsearch altsearch.tmpl

    ファイル名altsearch.tmplの前のaltsearchは代替テンプレートの名前で、検索フォームの設定で利用します。

  4. 検索フォームの設定

    利用する代替テンプレートを、検索フォーム内に次のとおり設定します。

    <div class="module-search module">
    <h2 class="module-header">検索</h2>
    <div class="module-content">
    <form method="get" action="<$MTCGIPath$><$MTSearchScript$>">
    <input type="hidden" name="Template" value="altsearch" />
    <input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
    <label for="search" accesskey="4">ブログを検索: </label><br />
    <input id="search" name="search" size="20" />
    <input type="submit" value="検索" />
    </form>
    </div>

    このように、フォームの隠しフィードTemplateに、mt-config.cgiに設定した代替テンプレートの名前を設定するとで、利用できるようになります。

Movable Type 3.3以降のバージョンでは、検索結果をフィードリーダーで購読するための設定が、環境変数AltTemplateに事前に設定されています。代替テンプレートを設定する場合、この初期値の設定も有効にするために、環境設定ファイルmt-config.cgiに、次の行も追記してください。

AltTemplate feed results_feed.tmpl

検索フォームをカスタマイズ

検索フォームにさまざまなパラメーターを設定することで、検索機能をカスタマイズできます。次は、すべてのパラメーターを設定したフォームの例です。

<form method="post" action="<$MTCGIPath$><$MTSearchScript$>">
<dl>
<!-- 検索条件 -->
<dt><label for="search">検索条件</label></dt>
<dd><input size="30" name="search" value="<$MTSearchString$>" /></dd>
<!-- オプション -->
<dt><label for="CaseSearch">大文字と小文字の区別</label></dt>
<dd><input type="checkbox" name="CaseSearch" /></dd>
<dt><label for="RegexSearch">正規表現</label></dt>
<dd><input type="checkbox" name="RegexSearch" /></dd>
<!-- 検索範囲に関するパラメーター -->
<dt><label for="ExcludeBlogs">検索の対象外にするブログ</label></dt>
<dd>
<MTBlogs>
<input type="checkbox" name="ExcludeBlogs" value="<$MTBlogID$>" /> <$MTBlogName$>
</MTBlogs>
</dd>
<dt><label for="SearchCutoff">検索する対象期間</label></dt>
<dd>
<select name="SearchCutoff">
<option value="9999999">最初から</option>
<option value="7">1週間前から</option>
<option value="14">2週間前から</option>
<option value="30">1カ月前から</option>
<option value="60">2カ月前から</option>
<option value="90">3カ月前から</option>
<option value="365">1年前から</option>
</select>
</dd>
<!-- 検索対象に関するパラメーター -->
<dt><label for="SeachElement">検索の対象</label></dt>
<dd>
<input type="radio" name="SearchElement" value="entries" />エントリー
<input type="radio" name="SearchElement" value="comments" />コメント
<input type="radio" name="SearchElement" value="both" />両方
</dd>
<!-- 検索結果に関するパラメーター -->
<dt><label for="SearchSortBy">並べ替え基準</label></dt>
<dd>
<select name="SearchSortBy">
<option value="created_on">作成日時</option>
<option value="title">タイトル</option>
</select>
</dd>
<dt><label for="ResultDisplay">並べ替え順</label></dt>
<dd>
<select name="ResultDisplay">
<option value="ascend">昇順</option>
<option value="descend">降順</option>
</select>
</dd>
<dt><label for="MaxResults">ブログごとの検索結果の表示数</label></dt>
<dd>
<select name="MaxResults">
<option value="5">5</option>
<option value="10">10</option>
<option value="25">25</option>
<option value="50">50</option>
<option value="100">100</option>
<option value="9999999">すべて</option>
</select>
</dd>
</dl>

<input type="submit" value="Search" /><br />
</form>

なお、これらのパラメーターは、環境設定ファイルmt-config.cgiに設定しておくことで、システム全体に共通の設定ができます。


Copyright © 2001-2007 Six Apart, Ltd. All Rights Reserved.