SearchContentsプラグイン(その14・検索結果出力テンプレートの作成)

SearchContentsプラグインでは、検索フォームで入力された条件を元に、検索結果を出力ことができます。
その際の検索結果出力テンプレートの作成方法を解説します。

1.テンプレートモジュールの新規作成

検索結果出力テンプレートは、テンプレートモジュールとして作成します。
テンプレート名の付け方は自由です。
また、テンプレートの書き方も、基本的には一般のテンプレートと同じです。

2.フォームから送信された値の利用

フォームから送信された値をテンプレート内で利用するために、MTSearchContentsタグの前に「MTGetQueryParamsToVars」というテンプレートタグを入れます。
MTGetQueryParamsToVarsタグによって、フォームから送信された値を、テンプレートの変数(MTGetVarタグで取得できる値)として扱うことができます。

変数名は、フォームでのname属性の値の前に「qp_」を付けたものになります。
例えば、フォームに以下のようなinput要素を入れたとします。

<input type="text" name="title">

この場合、このinput要素のname属性の値は「title」なので、入力された値は以下のMTGetVarタグで得ることができます。

<&mt:GetVar name="qp_title"$>

また、入力された値をモディファイアの値として指定する場合、Movable Typeの通常のテンプレートと同様に、「モディファイア名="$変数名」のように書きます。
例えば、前述のinput要素で入力された値を、MTSearchContentContainタグのvaluesモディファイアに指定する場合だと、以下のように書きます。

<&mt:SearchContentContain content_field="コンテンツフィールド名" values="$qp_title"$>

3.リアルタイム再構築の許可

作成したテンプレートモジュールは、RealtimeRebuildプラグインで再構築することを許可します。

対象のサイトで「設定」→「プラグイン」メニューでプラグイン一覧のページを開き、RealtimeRebuildプラグインの設定を開きます。
そして、「再構築を許可するテンプレート」の部分で、検索結果出力用テンプレートモジュールのチェックをオンにし、「変更を保存」ボタンをクリックします。

検索結果出力テンプレートのリアルタイム再構築を許可する