検索を動作させるための設定
更新日:2024.02.01
前回は、検索結果表示用テンプレートの基本的な書き方を解説しました。
今回はその続きで、検索フォームから検索結果表示用テンプレートを呼び出せるようにする手順を解説します。
テンプレートモジュールの作成
検索結果表示用のテンプレートは、テンプレートモジュールとして作成します。
手順は以下の通りです。
- ブログの管理画面で、「デザイン」→「テンプレート」メニューを選び、テンプレートの管理のページを開きます。
- 「テンプレートモジュール」の部分までスクロールし、「テンプレートモジュールの作成」のリンクをクリックして、テンプレートモジュールを新規作成します。
- テンプレートモジュールの名前には、検索フォームの「<input type="hidden" name="tmpl_id" value="<$mt:GetTemplateID tmpl_name="検索結果表示テンプレートの名前"$>" />」のタグで指定したのと同じテンプレート名を入れます。
- テンプレートモジュールの内容として、検索結果を表示するためのテンプレートを入力します。
- テンプレートモジュールを保存します。
例えば、検索フォームのテンプレートで、form要素の中に以下のinput要素を入れて、検索結果表示テンプレートの名前を「詳細検索結果」にしているとします。
<input type="hidden" name="tmpl_id" value="<$mt:GetTemplateID tmpl_name="詳細検索結果"$>" />
この場合、テンプレートモジュールの名前も「詳細検索結果」にします。
リアルタイム再構築を許可する
次に、1.で作ったテンプレートモジュールを、リアルタイム再構築プラグインで動的に再構築できるように設定します。
手順は以下の通りです。
- ブログの管理画面で「ツール」→「プラグイン」メニューを選び、プラグイン一覧のページを開きます。
- RealtimeRebuildプラグインの部分を開き、「設定」のタブに切り替えます。
- 「再構築を許可するテンプレート」の欄で、検索結果表示用のテンプレートモジュールにチェックを入れます。
手順の例
「検索フォーム作成の基本」の回のサンプルの検索フォームのテンプレートと、「検索結果表示テンプレート作成の基本」の回のサンプルの検索結果表示用テンプレートで、検索を行えるようにしたいとします。
その場合の手順は、以下のようになります。
- インデックステンプレートを新規作成します。
- テンプレート名を「検索フォーム」等にします。
- テンプレートの内容の欄に、「検索フォーム作成の基本」の検索フォームの基本的な例を参考にテンプレートを記述します。
- 出力ファイル名を適当に設定します(search_form.htmlなど)
- テンプレートを保存します。
- テンプレートモジュールを新規作成します。
- テンプレート名を「詳細検索結果」にします。
- テンプレートの内容の欄に、「検索フォーム作成の基本」の検索フォームの基本的な例を参考にテンプレートを記述します。
- テンプレートモジュールを保存します。
- 1.~5.で作った検索フォームのインデックステンプレートを再構築します。
- RealtimeRebuildプラグインの設定で、「詳細検索結果」のテンプレートモジュールをリアルタイム再構築できるようにします。
- 検索フォームのページを開き、検索の動作をテストします。