PowerCMS™
2025年1月1日購入分よりライセンスの価格を改定いたします。
[ブログ] PowerCMS 6 でのアップデートまとめ を追加しました。
[よくあるご質問] システムログに「タスクを実行するために必要なロックを獲得できませんでした」というログが残っている を追加しました。
[よくあるご質問] 特定のシステムログに絞って確認できますか? を追加しました。

PowerCMS ブログ

ホーム > PowerCMS ブログ > テンプレート作成Tips > AltSearch でキーワードなしのカテゴリ指定検索を実装する

2009年07月28日

AltSearch でキーワードなしのカテゴリ指定検索を実装する

アルファサードの近藤です。ドラクエ 9 がクリア目前にして、他の人と一緒にプレイすることの面白さに気づいてしまいました。

本日、サポートに「AltSearch でカテゴリ指定だけで検索できるようにしたいんだけど」というお問合せがありました。もちろん可能です。PowerCMS 同梱のテンプレートセット標準を想定した場合、以下のようにすることで実現できます。

  1. テンプレート編集画面を開く

    PowerCMS のテンプレートセットを適用した状態で、インデックステンプレートの「検索結果(ダイナミック)」編集画面に進みます。

  2. 検索キーワードがなくても表示できるようにする

    まず、<MTIfAltSearchquery> 〜 </MTIfAltSearchquery> があると、検索キーワードがある場合のみこのブロックタグ内が表示されますので、このタグを削除します。

  3. 表示を制御する

    さらに、このタグを削除した状態では検索パラメータ無しの状態ですべての結果が表示されてしまいますので、フォーム送信によりかならず送られるパラメータがあるかないかで表示分岐させるよう、上記タグがあった場所に記述します。
    以下では、パラメータ limit があれば表示する場合の例です。

    <MTSetVarBlock name="limit"><MTAltSearchParam name="limit"></MTSetVarBlock>
    <MTIf name="limit">
    パラメータ limit があれば表示
    </MTIf>
  4. 保存する

    ここまでできたら編集内容を保存しましょう。

  5. 確認する

    http://example.com/blog/dynamic/search.html にアクセスして、キーワードなしのカテゴリ指定検索ができることを確認しましょう。ちゃんとできてるはずなのに反映されていない場合は、検索キャッシュをクリアしてみてください。

このようにすることで、キーワードなしのカテゴリ指定検索を実現することができます。キーワード入力欄が不要になる場合はテンプレートから削除してください。

AltSearch は Movable Type 標準の mt-search.cgi に比べ、高速であることと、パラメータの送り方・受け取り方と各エントリへのデータの持たせ方で様々な工夫ができることが魅力です。ぜひ一度、テンプレートをカスタマイズしてみることをオススメします。


カテゴリー
テンプレート作成Tips

Recent Entries