ホーム > サポート・マニュアル > チュートリアル > モジュールID > Entry_SummaryのモジュールIDで、サイト内検索の結果ページを作る方法
サイト内検索の結果を表示するために
サイト内検索を表示するためには、以下の準備が必要です。以降、順にひとつひとつの準備工程を説明して追っていきます。
- 検索結果カテゴリー
- ルールを指定するために作成
- キーワードを参照するモジュールID
- keywordを参照するサマリーを作成
- 検索結果のときのルール
- 検索結果用のテンプレートを指定
- キーワード検索窓
- 検索結果に移動するフォーム
検索結果カテゴリーの作成
検索結果カテゴリーを作成します
普通にカテゴリーを作成します。任意のカテゴリーコードを指定します。カテゴリーの一覧ページとして検索結果を表示することでURLコンテキスト上、自然な表現にすることができます。リスト表示には不要なカテゴリーなので、インデキシングはオフにします。
キーワードを受け取るモジュールID
URLコンテキスト上のキーワード(keyword)を参照するモジュールIDを作成します。また、Entry_Summaryのページャーを利用するために、ページ(page)も参照するようにします。
タグ(tag)も参照するようにすると、Tag_Cloudモジュールや、Tag_Filterモジュールと組み合わせることでサイト全体のタグ検索も可能ですが、ここでは割愛します。
Entry_Summaryを利用することで、エントリーのメイン画像も表示することが可能になるため、サイト全体の検索性が向上します。
検索結果のときのルール
[検索結果のルール]テーマ設定から、一覧ページのテンプレートを指定
検索結果のときのルールを作成します。カテゴリーID(CID)に、最初に作成した検索結果カテゴリーのIDを指定してください。
検索結果を表示するときには一覧ページの表示状態を使用します。ルールのコンフィグを設定します。
テーマ設定から一覧ページに、先ほど設定したモジュールIDが記述されている、検索結果用のテンプレートを指定してください。
キーワード検索窓をサイト上の任意の場所に設置する
<form action="" method="post">
<input type="text" name="keyword" value="%{KEYWORD}" />
<input type="submit" name="ACMS_POST_2GET" id="ACMS_POST_2GET" value="検索" alt="検索" />
<input type="hidden" name="bid" value="%{BID}" />
<input type="hidden" name="cid" value="(検索結果のカテゴリーIDを入力)" />
</form>
ここでは、ACMS_POST_2GETというモジュールを使用しています。hiddenに指定したそれぞれのURLコンテキスト情報をまとめ、ボタンを押したときのジャンプ先のURLとして利用するモジュールです。ヘッダー部分にインクルード機能を使うような形で、サイト全体で共有できるように組み込むと、あとの管理も容易になります。
備考:サイト全体が多層ブログになっていて、かつ検索結果をすべてのブログから取得したい場合は、ルートブログでここまでの設定作業を行ってください。その上で、bidをしている部分のvalue属性を「グローバル変数」ではなく、ルートブログのIDである「1」に書き換えます。階層構造の参照についても、子孫ブログを参照するように設定します。
検索結果ページのできあがりです
検索窓を使って、きちんとキーワードどおりの記事が検索されたでしょうか?うまくいかない場合は、検索結果のカテゴリーIDの指定や、テンプレート、モジュールIDの設定をよく見直してみましょう。
今回のチュートリアルは、モジュールIDはもちろん、ルールやURLコンテキストの概念を複合して利用する実践的な内容でした。少し難しかったかもしれませんが、それぞれの機能や概念を組み合わせて使えるようになると、アイディア次第でもっと色々なページを作成することができます。検索結果以外にもぜひ色々試してみてください。
このドキュメントと関連している内容のエントリー
- 関連度 1 : モジュールIDを複製する
- 関連度 1 : ルールでuidを条件に設定しても反映されない
- 関連度 1 : 特定のカテゴリーに適用するテンプレートを設定する
- 関連度 1 : ひとつのルールで、複数のカテゴリーにコンフィグを適用したい
- 関連度 1 : ルールを使わずに特定カテゴリーにテンプレートを適用したい
ドキュメントの内容に関するお知らせフォーム
内容に誤り・現行バージョンと異なる部分がありましたら、下記のフォームよりお知らせください。



