検索結果テンプレートを複数作成する

<< 前のページ 検索窓の設置と検索結果画面の作成3

検索結果のテンプレートを0から作りましたが、注意が必要です。

<form method="get" action="<$MTCGIPath$><$MTSearchScript$>" id="searchform">
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
<input type="text" name="search" size="20" />
<input type="submit" value="検索" />
</form>

MovableTypeで管理しているWEBサイト(ブログ)が1つだけの場合は、上記のソースの記述だけでsearch_templatesのdefault.tmplを読み込んでくれるのでいいのですが、将来的に、MovableTypeで複数のサイトを管理する場合、今までのソースの記述だけでは全てのサイトがsearch_templatesのdefault.tmplを読み込んでしまいます。つまり、検索結果だけ同じテンプレートを使用してしまうという問題があります。

そこで、各サイト(ブログ)ごとに対応した検索結果のテンプレートを読み込む方法を紹介します。
まずは上記ソースに、次の1行を追記します。

<form method="get" action="<$MTCGIPath$><$MTSearchScript$>" id="searchform">
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
<input type="hidden" name="Template" value="sample" />
<input type="text" name="search" size="20" />
<input type="submit" value="検索" />
</form>

太字の部分で明示的に、【sampleという名称の検索結果テンプレートを使用する】という記述をしています。(この1行が無い場合は、default.tmplが使用される仕組みとなっています。)
sampleという名称は一例です。任意の名前をつけることができます。

次に、MovableTypeをインストールしたディレクトリ直下のsearch_templatesの中に、sample.tmplをアップロードします。今回は、先ほど作成したdefault.tmplのファイル名をsample.tmplに変更してアップロードします。

最後に、MovableTypeをインストールしたディレクトリ直下にある、mt-config.cgiを修正します。
450行目前後にある、
# AltTemplate work work.tmplという記述を削除し(文頭のシャープをはずし)新たに、
AltTemplate sample sample.tmplとします。

同じMovableTypeで別のサイトを作成し、sample.tmplとは違う検索結果テンプレートを使用したい場合は、先ほど書いたmt-config.cgiのAltTemplate sample sample.tmplの次の行に、
AltTemplate other other.tmplなどとして保存します。

そして、検索フォームの部分で以下のように記述し、
<input type="hidden" name="Template" value="other" />

実際にother.tmplを作成して、MovableTypeをインストールしたディレクトリ直下のsearch_templatesの中にother.tmplををアップロードする、という形になります。

次のページ >> 2カラムまとめ

▲ページトップへ