チャレンジ! Movable TypeをCMSとして使ってみよう!

第15回 検索結果テンプレートとサイトマップページを完成させる

この記事を読むのに必要な時間:およそ 3 分

検索結果テンプレートに検索用の文言が入力されなかったときの処理を追加し,今回で完成とします。その後,サイトマップページを完成させます。

検索用の文言を入力されなかったときの処理

ほげ山くん:先輩。僕,先輩のブログ記事読みましたよ。

くれま先輩:あ,あの記事見てくれたんだ。検索用の文言を入力されなかった時の処理を行うMTNoSearchタグの話だよね。

【参考ページ】
Movable Type4.25で,MTNoSearchタグが復活。|linker journal
http://linker.in/journal/2009/04/movable-type425-mtnosearch.php

ほげ山くん:要するに,Movable Type4.2以降で使えなかったMTNoSearchというタグが,Movable Type4.25から使えるようになったという話なんですよね?これって,前回僕らが作業したテンプレートの中に入れてないですよね。

くれま先輩:そうなのよ!まさか4.25になるタイミングで,MTNoSearchが復活するって予測していなかったんだよねぇ。早速このタグの追加からやっていこうか。前回作成したテンプレートの中に,<mt:NoSearchResults>~</mt:NoSearchResults>っていうサブテンプレートがあるから,その直後に,こんな感じで書いてね。

<mt:NoSearch>
<h1>検索方法の例</h1>
<p>すべての単語が順序に関係なく検索されます。フレーズで検索したいときは引用符で囲んでください。</p>
<blockquote>
    <p>"movable type"</p>
</blockquote>
<p>AND,OR,NOTを入れることで論理検索を行うこともできます。</p>
<blockquote>
    <p>個人 OR 出版</p>
    <p>個人 NOT 出版</p>
</blockquote>
</mt:NoSearch>

ほげ山くん:入れましたー。

くれま先輩:これで,検索用フォームに文言を入力しないで検索ボタンをクリックされたり,直接mt-serch.cgiにアクセスされたりした場合には,mt:NoSearchタグで囲まれた文言が出力されるようになるよ。中の文言をそのサイトなりにアレンジしてもいいね。

ほげ山くん:なるほどです!

オプションで用意されているパラメータについて

くれま先輩:ねぇ,ほげ山くん,いつもmovabletype.jpのドキュメントを読んでる?

ほげ山くん:まぁまぁ読んでるほうだと思いますけど…。

くれま先輩:じゃあ,このページを読んだことあるかな?

【参考ページ】
検索結果ページのカスタマイズ | Movable Type 4 ドキュメント
http://www.movabletype.jp/documentation/designer/customizing
_search_template.html

ほげ山くん:うぅ,何となく見たことあるかも,程度です…。

くれま先輩:このページの一番最後のところに,「検索フォームのカスタマイズ」っていうセクションがあるでしょ?今回はこれを説明しようかなって思ってたの。だけど,ほげ山くんに説明する前に自分の環境で試していたら,どうもこのパラメータが4.25で上手く動かなかったのよね。

ほげ山くん:ふむふむ。

くれま先輩:原因が分らなかったから,シックス・アパートさんにお尋ねしたところ,「Movable Type 4.2 から,サイト内検索に関する仕様が大幅に変更されたので,CaseSearch,RegexSearch,SearchCutoff,SeachElementのパラメータは利用できなくなりました」というお返事をいただいたの。

ほげ山くん:へぇ,そうなんですか。ちょっと残念ですねぇ。

くれま先輩:ここに挙げられなかったパラメータに関しては,どう使えるかちょっとテストをしているところなの。div="secondly"が空のままで悪いんだけど,検索テンプレートに関しては,いったんここで作業終了とさせてね。後日詳しいことがわかったら,追加で説明をします!

ほげ山くん:はい,わかりました。じゃあ先輩,この段階でどんな感じで動くか試してみていいですか?

くれま先輩:うん,ぜひ。この間,分割された検索結果ページの1ページあたりの件数が20件って話をしたでしょ?あれを試したいから,テスト用に同じキーワードの入ったブログ記事の数を20個以上にしてみてね。

ほげ山くん:はーい。…では試しに,「タイトル」という単語をタイトル部分に入れたブログ記事を21個用意してみますね。で,入力フォームに「タイトル」を入力して「検索」をクリック。

くれま先輩:どう?

ほげ山くん:お,検索ページの下部に,ちゃんとページ分割のナビゲーションが出力されてますね!そして,1ページ目には,ちゃんと20件表示されてますよー。

検索ページ下部に出力されたページ分割用ナビゲーション

くれま先輩:このナビゲーションの「1」「2」という数字をクリックするのではなく,「次 &gt;」のところをクリックした時だけ,Ajaxによるページ分割が行われるので,クリックして試してみてね。

著者プロフィール

黒野明子(くろのあきこ)

1973年生まれ。1995年 武蔵野美術大学短期大学部専攻科グラフィックデザインコース修了。

ファッションカメラマン事務所、広告系デザイン事務所、Web制作会社勤務を経て、2003年よりフリー。Webデザイン・企画を中心に、DTPデザインなども行う。

現在、武蔵野美術大学共通デザイン研究室非常勤講師及び株式会社デジタルスケープ・PreJOBトレーニング講師も兼務。2005年秋頃から業務としてMTサイトの構築を始め、現在の業務のほとんどでMovable Typeを使用している。

著書:

『CMSとして使うMovable Typeガイドブック』 (翔泳社、共著)

『Movable Typeプロフェッショナル・スタイル』(毎日コミュニケーションズ、共著)

URL:http://cremadesign.jp/

コメント

  • Movable Type 4.2 からのサイト内検索に関する仕様変更について

    『シックス・アパートさんにお尋ねしたところ,「Movable Type 4.2 から,サイト内検索に関する仕様が大幅に変更されたので,CaseSearch,RegexSearch,SearchCutoff,SeachElementのパラメータは利用できなくなりました」というお返事をいただいた』との記述がありましが、この仕様変更に関して具体的に記述されたページ等があれば、教えて頂けないでしょうか?
    私も、Movable Type 4.21で「CaseSearch,RegexSearch」パラメータを使っているのですが、うまく動かずに悩んでいました。
    よろしくお願い致します。

    Commented : #1  ひろし (2009/05/11, 17:34)

コメントの記入