拙著「FXはチャートで勝つ!」が発売されました。
FX(外国為替証拠金取引)でのチャートの読み方を解説しています。
自由国民社刊で、定価1,728円(消費税込み)です。
ブログ記事詳細検索プラグイン(その17・検索結果表示テンプレート作成の基本)
検索フォームの次に、フォームから送信された条件に沿って検索結果を表示するように、テンプレートを作ります。
その基本的な手順を解説します。
1.検索条件が動的に変化する
フォームを使って検索する場合も、検索結果を表示するテンプレートにMTSearchConditionsタグのブロックを入れて、検索条件を指定します。
ただ、これまでの事例とは異なり、フォームの入力内容によって、検索条件が動的に変化します。
その点に対応する必要があります。
例えば、「ブログ記事のタイトルに○○が含まれる」という条件で検索したい場合だと、MTSearchConditionsタグのブロックを以下のように書きます。
<mt:SearchConditions> <$mt:SearchConditionLike field="title" values="○○"$> </mt:SearchConditions>
この「values="○○"」の部分を、フォームで入力されたキーワードに置き換えれば、フォームに沿った検索を行うことができます。
2.フォームで入力された内容を変数で表す
上で述べたように、検索フォームを使って検索する場合、フォームの内容に沿って検索条件を動的に変える必要があります。
そこで、フォームで入力された内容を変数に代入するようにします。
そして、MTSearchConditionsタグのブロックでは、変数を使って条件を指定するようにします。
フォームの入力内容を変数に代入するには、「MTGetQueryParamsToVars」というテンプレートタグを使います。
このタグは、GetQueryParamプラグインによって追加されます。
MTGetQueryParamsToVarsタグを実行すると、フォーム内の各入力要素の値が、「qp_要素のname属性」という名前の変数に代入されます。
例えば、以下のように、検索フォームに「title」というname属性の要素を入れたとします。
<input type="text" id="title" name="title" />
この場合だと、name属性は「title」です。
したがって、MTGetQueryParamsToVarsタグを実行すると、この要素で入力された値は、「qp_title」という名前の変数に代入されます。
3.MTSearchConditionsブロックの組み方の例
変数に代入された値を、検索条件のタグに指定すれば、フォームの入力内容に沿った検索を行うことができます。
例えば、「ブログ記事のタイトルに○○が含まれる」という条件で検索したいとします。
また、検索フォームでは、「○○」を入力するテキスト欄に、「title」というname属性を付けているとします。
この場合、MTSearchConditionsブロックを以下のように組みます。
<$mt:GetQueryParamsToVars$> <mt:SearchConditions> <$mt:SearchConditionLike field="title" values="$qp_title"$> </mt:SearchConditions>
1行目のMTGetQueryParamsToVarsタグによって、フォームで入力された内容が変数に代入されます。
そして、3行目のMTSearchConditionLikeタグで、valuesモディファイアに変数qp_title(フォームの「title」の欄に入力された値)を指定しています。
上の部分を含むテンプレートの例は、以下からダウンロードすることができます。
なお、検索結果のテンプレートの入力方法や、フォームから検索結果テンプレートを呼び出せるようにする手順は、次回に解説します。
4.SearchEntriesプラグイン関係の記事の一覧
SearchEntriesプラグイン関係のその他の記事は、以下のリンクから参照できます。
- ブログ記事詳細検索プラグイン(その1・概要/インストール/ライセンス)
- ブログ記事詳細検索プラグイン(その2・「ブログ記事のフィールドの値が○○に等しい」場合の検索)
- ブログ記事詳細検索プラグイン(その3・「ブログ記事のフィールドの値に○○を含む」場合の検索)
- ブログ記事詳細検索プラグイン(その4・「ブログ記事のフィールドの値が○○以上」等の場合の検索)
- ブログ記事詳細検索プラグイン(その5・ブログ記事のフィールドどうしでのOR検索)
- ブログ記事詳細検索プラグイン(その6・カテゴリのOR検索)
- ブログ記事詳細検索プラグイン(その7・カテゴリのAND検索)
- ブログ記事詳細検索プラグイン(その8・タグの検索)
- ブログ記事詳細検索プラグイン(その9・カスタムフィールドでの検索の基本)
- ブログ記事詳細検索プラグイン(その10・カスタムフィールドでの検索の応用)
- ブログ記事詳細検索プラグイン(その11・各種の検索条件の指定)
- ブログ記事詳細検索プラグイン(その12・ブログ記事の並べ替え)
- ブログ記事詳細検索プラグイン(その13・検索結果の一部を読み込む)
- ブログ記事詳細検索プラグイン(その14・複雑なOR検索)
- ブログ記事詳細検索プラグイン(その15・検索結果の件数の出力)
- ブログ記事詳細検索プラグイン(その16・検索フォーム作成の基本)
- ブログ記事詳細検索プラグイン(その17・検索結果表示テンプレート作成の基本)
- ブログ記事詳細検索プラグイン(その18・検索を動作させるための設定)
- ブログ記事詳細検索プラグイン(その19・検索フォーム/検索結果表示の事例・1つの数値で検索)
- ブログ記事詳細検索プラグイン(その20・検索フォーム/検索結果表示の事例・数値の範囲で検索)
- ブログ記事詳細検索プラグイン(その21・検索フォーム/検索結果表示の事例・数値の範囲をselectで選択)
- ブログ記事詳細検索プラグイン(その22・検索フォーム/検索結果表示の事例・日付で検索)
- ブログ記事詳細検索プラグイン(その23・検索フォーム/検索結果表示の事例・期間で検索)
- ブログ記事詳細検索プラグイン(その24・検索フォーム/検索結果表示の事例・カテゴリのOR検索)
- ブログ記事詳細検索プラグイン(その25・検索フォーム/検索結果表示の事例・カテゴリのAND検索)
- ブログ記事詳細検索プラグイン(その26・検索フォーム/検索結果表示の事例・タグのOR検索)
- ブログ記事詳細検索プラグイン(その27・検索フォーム/検索結果表示の事例・タグのAND検索)
- ブログ記事詳細検索プラグイン(その28・検索フォーム/検索結果表示の事例・ドロップダウン/ラジオボタンのカスタムフィールドの検索)
- ブログ記事詳細検索プラグイン(その29・検索結果のページ分割/静的な検索の場合)
- ブログ記事詳細検索プラグイン(その30・検索結果のページ分割/動的な検索の場合)
- ブログ記事詳細検索プラグイン(その31・検索結果のページ分割/PHPによるキャッシュ)
- SearchEntriesプラグインでMore Custom FieldsプラグインのCheckbox Groupを検索する(静的編)
- SearchEntries プラグインでMore Custom FieldsプラグインのCheckbox Groupを検索する(動的編)
- SearchEntriesプラグイン不具合修正