第29回:ブログごとに検索結果テンプレートを変更する
第28回では、Movable TypeをMoblog に対応させる方法について説明しました。今回は、ブログごとに検索結果のテンプレートを変更する方法について解説します。Movable Typeでは、検索が実行されると、デフォルトの検索結果テンプレートである default.tmpl が使われ、全てのブログでこのテンプレートが使われてしまいます。
この default.tmpl は、MTディレクトリ内の search_templates ディレクトリ内に格納されています。検索結果のテンプレートは、1つのブログごとに管理されていないため、MT管理画面には、検索結果のデザインをカスタマイズするテンプレートは用意されていません。そこで、検索結果ページのデザインを変更するには、このdefault.tmpl を変更することになります。
しかし、複数のブログがあり、ブログごとに検索結果テンプレートを変更したい場合は、複数(代替)テンプレートを用いることになります。 まず、MTディレクトリ内にある mt-config.cgi を開いて以下の行を編集します。以下例で、sports と music は、input タグ内の hidden属性で指定する名前です。自分でわかりやすい名前をつけておきましょう。sports.tmpl と music.tmpl は、各ブログごとに用意するテンプレートになります。
AltTemplate music music.tmpl
次に、検索ボックスを設置したいブログごとに、以下、赤文字で記した部分を追加します。
<input type="hidden" name="Template" value="sports" />
<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>
以上で、ブログごとに検索結果テンプレートを変更する事ができます。
なお、補足として、「エントリーのみで検索をかける」、「コメントのみで検索をかける」、「エントリーとコメントの両方で検索をかける」ためのチェックボックスを設置する場合は、以下の input タグを追加しておきます。
<input type="radio" name="SearchElement" value="comments" />コメント
<input type="radio" name="SearchElement" value="both" />両方<br />
他にもいくつか検索オプションが用意されているので、以下マニュアルを参考に各自でカスタマイズしてください。
http://www.sixapart.jp/movabletype/manual/3.2/mtmanual_public.html#search_forms
以上で第29回は終了です。
参考になりましたらポチっとお願いします♪