MovableTypeをいわゆるブログとしてではなく、一般的なWebサイトとして利用したいとき(CMSとして構築する場合)、複数のブログを組み合わせて一つのサイトとすることがよくある。
最近のMTでのCMS構築は、一見するとまったくMTで作っているこのがわからない。
なので、ユーザの方も検索窓があれば、サイト全体を検索するという認識であろう。
この方法は、特別なプラグインを入れる必要もなく、現状のMTの機能で設定可能である。
メニューの検索フォームの表示は、「ブログを検索」→「サイト検索」にテンプレート上で変更。
ここで、検索結果が表示されるが、設定方法として2種類ある。
方法は、SixApartのマニュアル「サイト内検索に関するカスタマイズ」にも載っている。
○方法その1
- MTをインストールしたディレクトリ「search_templates」ディレクトリのdefault.tmpl ファイルをサイトイメージデザインにカスタマイズする。
- 検索フォームが表示される標準的なテンプレートの以下の行を変更
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />「<$MTBlogID$>」には、通常はセットされたテンプレートのブログIDの数字が1つのみ表示される。
このMTタグ部分を直接検索したいブログIDを入れる。たとえば、4つのブログで構成されているときは、半角カンマ区切りで、1,2,3,4 に変更する。
○方法その2
「代替テンプレート」
この方法は、複数ブログの運用で、すべてのブログをサイト内検索するのではなく、一部の複数ブログのみを検索するときに効果的。
具体的には、
ブログID:1,2,3,4でサイト構築-デザインA
ブログID:5,6,7,8でサイト構築-デザインB
サブドメインなどのすみわけで、全くコンセプトが違うサイトを2つ構築するときなど。
詳しい方法は、Sixapartのマニュアルを参照していただきたいが、デザインカスタマイズした検索テンプレートを方法その1と同じ場所にアップロードし、mt-config.cgiにこのファイルを追加。
検索フォームのテンプレートにこの代替テンプレートを認識するよう1行を追加する。
googleの検索APIを設置する方法もあるが、検索語のフィードの購読などの機能も利用できるので、検索フォームは有効に活用すればよいかと思う。
また、デフォルトの検索パラメータを利用すれば、簡易データベースとして、もっと利用価値は生まれてくる。