チャレンジ! Movable TypeをCMSとして使ってみよう!
第15回 検索結果テンプレートとサイトマップページを完成させる
2009年4月20日
Web制作, Movable Type, MT, CMS, ブログ, テンプレート, 検索, サイトマップ
ファイル, テンプレート, カテゴリ, クリック, サイトマップ, Movable
検索結果テンプレートに検索用の文言が入力されなかったときの処理を追加し,今回で完成とします。その後,サイトマップページを完成させます。
検索用の文言を入力されなかったときの処理
ほげ山くん:先輩。僕,先輩のブログ記事読みましたよ。
くれま先輩:あ,あの記事見てくれたんだ。検索用の文言を入力されなかった時の処理を行う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」という数字をクリックするのではなく,「次 >」のところをクリックした時だけ,Ajaxによるページ分割が行われるので,クリックして試してみてね。
チャレンジ! Movable TypeをCMSとして使ってみよう!
-
MT4.2でも検索オプション(CaseSearchやRegexSearch等)は使える
MT4.15からCaseSearchやRegexSearchなどの検索オプションが使えなくなりました。
しかしその検索オプションがMT4.2でも使える方法を見つけました。
勝利の鍵はMT::App::Search::Legacyです。Tracked : #2 45式::雑記 (2009/11/17, 23:58)
-
MT4.2で検索オプション「CaseSearch」や「RegexSearch」が使えないか?
このブログのサイト内検索に、「大文字/小文字を区別(CaseSearch)」と「...
Tracked : #1 Nakamura's Weblog (2009/05/11, 23:28)
-
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)


