Movable Type CMSプラットフォーム Movable Type
ドキュメントサイト

Movable Type 4 ManualMovable Type 4 マニュアル

検索結果ページのカスタマイズ

最終更新日: 2017.10.06

特定のブログを検索対象にする

各ブログのデフォルトテンプレートでは、次のように、そのブログのみを検索するように設定されています。

<input type="hidden" name="IncludeBlogs" value="<$mt:BlogID$>" />

この IncludeBlogs パラメータに、そのフォームから検索を行ったとき、検索対象としたいブログの BlogID を設定します。

<input type="hidden" name="IncludeBlogs" value="1,2,4" />

この例では、BlogID が 1,2,4 のブログを検索対象とするフォームとなります。

<form method="get" action="<$mt:CGIPath$><$MTSearchScript$>">
    <input type="text" id="search" name="search" value="<$mt:SearchString$>" />
    <div>
        <input type="hidden" name="IncludeBlogs" value="1,2,4" />
        <input type="submit" value="GO" />
    </div>
</form>

Movable Type で管理している全てのブログを検索の対象にする

管理しているブログ全てを検索の対象にしたい場合は、検索フォームの form 要素のに含まれる name 属性の値を IncludeBlogs に設定した input 要素を削除し、検索対象の絞り込みをしないようにします。

<form method="get" action="<$mt:CGIPath$><$MTSearchScript$>">
    <input type="text" id="search" name="search" value="<$mt:SearchString$>" />
    <div>
        <input type="submit" value="GO" />
    </div>
</form>

全てのブログの検索から特定のブログを検索対象にしない

全てのブログ検索から、特定のブログを外したい場合、環境設定ファイル (mt-config.cgi) に、環境変数 ExcludeBlogs で、対象から外したい BlogID を設定します。

ExcludeBlogs 1,2,4,7,10

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

検索結果のカスタマイズ

検索結果ページのカズタマイズは、検索結果テンプレートのカスタマイズで行います。

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

ブログの検索結果テンプレートは、各ブログのシステムテンプレートとして登録されています。検索結果テンプレートは、そのテンプレートを管理しているブログの検索フォームから、検索した結果に使われます。たとえば、『A』というブログから、システム全体のブログを対象とした検索を行っても、特に指定の無い限り、検索を行なったブログの検索結果テンプレートを使用して結果ページを出力します。

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

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

代替テンプレート

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

代替テンプレートの作成

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

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

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

代替テンプレートの登録

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

SearchAltTemplate altsearch altsearch.tmpl

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

Movable Type 4.15 以前のバージョンでは、AltTemplate を使用してください。

検索フォームの設定

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

<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>

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

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

<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に設定しておくことで、システム全体に共通の設定ができます。