「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
ブログ記事詳細検索プラグイン(その10・カスタムフィールドでの検索の応用)
SearchEntriesプラグインでは、複数のカスタムフィールドを組み合わせた検索や、ブログ記事標準のフィールド/カテゴリ/タグを組み合わせた検索も可能です。
1.複数のカスタムフィールドを組み合わせた検索
複数のカスタムフィールドを組み合わせて検索するには、カスタムフィールドの数だけ、MTSearchConditionCFSectionタグを繰り返し書きます。
例えば、以下のようにカスタムフィールドを定義しているとします。
カスタムフィールド | カスタムフィールドの種類 | ベースネーム | テンプレートタグ |
---|---|---|---|
値段 | 整数 | entry_price | MTEntryPrice |
サイズ | テキスト | entry_size | MTEntrySize |
おすすめ | チェックボックス | entry_recommend | MTEntryRecommend |
この状況で、以下のすべての条件を満たすブログ記事を検索したいとします。
- 「おすすめ」のチェックボックスがオンになっている(entry_recommendカスタムフィールドの値が1)
- SかMのサイズがある(entry_sizeカスタムフィールドの値にSかMを含む)
- 1,000円以上2,000円未満(entry_priceカスタムフィールドの値が1,000以上)2,000未満
この場合、3つのカスタムフィールドそれぞれに対して、MTSearchConditionCFSectionタグのブロックを作り、以下のようにテンプレートタグを組みます。
<mt:SearchConditions> <mt:SearchConditionCFSection field="entry_recommend"> <$mt:SearchConditionCFNotValues values="1"$> </mt:SearchConditionCFSection> <mt:SearchConditionCFSection field="entry_size"> <$mt:SearchConditionCFLike values="S,M"$> </mt:SearchConditionCFSection> <mt:SearchConditionCFSection field="entry_price"> <$mt:SearchConditionCFCompare ge="1000" lt="2000"$> </mt:SearchConditionCFSection> </mt:SearchConditions> <mt:IfNonZero tag="SearchLoadedEntryCount"> <ul> <mt:Entries> <li><$mt:EntryTitle$>(<$mt:EntryRecommend$>)(<$mt:EntrySize$>)(<$mt:EntryPrice$>)</li> </mt:Entries> </ul> </mt:IfNonZero>
2.ブログ記事標準のフィールド/カテゴリ/タグを組み合わせた検索
MTSearchConditionタグのブロックの中に、ブログ記事のフィールド/カテゴリ/タグ/カスタムフィールドの条件を続けて書くことで、それら全ての条件を満たすブログ記事を検索することができます。
例えば、前述の例に、さらに以下の条件を追加するとします。
- タイトルに「Tシャツ」を含む
- カテゴリが「シャツ」
- 「Vネック」のタグが付いている
この場合、以下のようにテンプレートを組みます。
<mt:SearchConditions> <$mt:SearchConditionLike field="title" values="Tシャツ"$> <mt:SearchConditionCategorySection> <$mt:SearchConditionCategory category="シャツ"$> </mt:SearchConditionCategorySection> <mt:SearchConditionTagSection> <$mt:SearchConditionTag tag="Vネック"$> </mt:SearchConditionTagSection> <mt:SearchConditionCFSection field="entry_recommend"> <$mt:SearchConditionCFNotValues values="1"$> </mt:SearchConditionCFSection> <mt:SearchConditionCFSection field="entry_size"> <$mt:SearchConditionCFLike values="S,M"$> </mt:SearchConditionCFSection> <mt:SearchConditionCFSection field="entry_price"> <$mt:SearchConditionCFCompare ge="1000" lt="2000"$> </mt:SearchConditionCFSection> </mt:SearchConditions> <mt:IfNonZero tag="SearchLoadedEntryCount"> <ul> <mt:Entries> <li> <$mt:EntryTitle$> (<mt:EntryCategories glue=","><$mt:CategoryLabel$></mt:EntryCategories>) (<mt:EntryTags glue=","><$mt:TagName$></mt:EntryTags>) (<$mt:EntryRecommend$>) (<$mt:EntryIntData$>) (<$mt:EntrySize$>) </li> </mt:Entries> </ul> </mt:IfNonZero>
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プラグイン不具合修正