「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
ブログ記事詳細検索プラグイン(その20・検索フォーム/検索結果表示の事例・数値の範囲で検索)
検索フォーム/検索結果表示テンプレートの事例の1つとして、「フィールドの値が○○以上□□以下」など、2つの数値で条件を指定して検索する場合を取り上げます。
以下のような事例を基に解説します。
- 商品の価格を表すために、「entry_price」というベースネームのカスタムフィールドを作っているものとします。
- 検索結果表示用のテンプレートモジュールには、「詳細検索結果」という名前を付けるものとします。
- 「価格が○○円以上□□円以下」という条件で検索できるようにします。
1.検索フォーム側
検索フォーム側には、上限/下限の2つの数値を入力するために、テキスト入力欄を2つ作ります。
下限/上限のテキスト入力欄のname属性を、それぞれ「entry_price_min」「entry_price_max」にするなら、テンプレートの検索フォーム部分は以下のように組むことが考えられます。
<form method="get" action="<$mt:RealtimeRebuildCGIPath$>"> <input type="hidden" name="blog_id" value="<$mt:BlogID$>" /> <input type="hidden" name="tmpl_id" value="<$mt:GetTemplateID tmpl_name="詳細検索結果"$>" /> <p> <label for="entry_price_min">価格が</label> <input type="text" name="entry_price_min" id="entry_price_min" size="10" />円以上 <input type="text" name="entry_price_max" id="entry_price_max" size="10" />円以下 </p> <p> <input type="submit" value="送信" /> </p> </form>
なお、このフォームを含むテンプレートの例は、以下のリンクからダウンロードすることができます。
2.検索結果表示テンプレート側
検索結果表示テンプレート側では、以下のような手順で、検索結果を出力します。
- MTGetQueryParamsToVarsタグを使って、フォームから送信された値を変数に代入します。
- MTSearchConditionCompareタグやMTSearchConditionCFSectionタグ/MTSearchConditionCFCompareタグを使って、数値での検索条件を指定します。
1.で作ったフォームだと、MTGetQueryParamsToVarsタグによって、入力された数値は「qp_entry_price_min」と「qp_entry_price_max」という変数に代入されます。
これらの変数を、検索条件の下限/上限に指定します。
また、カスタムフィールドで検索するので、MTSearchConditionCFSectionタグとMTSearchConditionCFCompareタグを使って条件を指定します。
上記の話に沿って、検索結果表示テンプレートの検索部分を作ると、以下のようになります。
<$mt:GetQueryParamsToVars$> <mt:SearchConditions> <mt:SearchConditionCFSection field="entry_price"> <$mt:SearchConditionCFCompare ge="$qp_entry_price_min" le="$qp_entry_price_max"$> </mt:SearchConditionCFSection> </mt:SearchConditions>
4行目のMTSearchConditionCFCompareタグで、ge/leの2つのモディファイアを使って、範囲の下限と上限を指定しています。
なお、上記の部分を含むテンプレートの例は、以下のリンクからダウンロードすることができます。
3.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プラグイン不具合修正