「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
SearchContentsプラグイン(その9・OR検索)
SearchContentsプラグインでは、「複数の条件の中のどれか1つを満たす」という検索を行うこともできます(OR検索)。
ただし、AND検索と比べて、テンプレートの書き方が複雑になります。
1.共通フィールド間のOR検索
コンテンツデータに共通なフィールド(公開日など)でOR検索する場合は、以下のようにテンプレートを組みます。
- OR検索する各条件を、MTSearchContentSectionというブロックタグで囲みます。
- 各条件の間に、<$mt:SearchContentUnion op="or"$>というテンプレートタグを入れます。
例えば、「商品」というコンテンツタイプがあるときに、以下の条件のどちらかを満たすコンテンツデータを検索したいとします。
- 公開日(authored_on)が2018年1月1日以降
- ユーザーのID(author_id)が1
この場合、以下のようにテンプレートを組みます。
<mt:SearchContents content_type="商品">
<mt:SearchContentSection>
<$mt:SearchContentCompare field="authored_on" ge="20180101000000"$>
<$mt:SearchContentUnion op="or"$>
<$mt:SearchContentValues field="author_id" values="1"$>
</mt:SearchContentSection>
</mt:SearchContents>
2.コンテンツフィールド間のOR検索
コンテンツフィールド間でOR検索を行う場合、以下の手順を取ります。
- それぞれの条件をMTSearchContentsタグのブロックで表し、検索されたコンテンツデータのIDを変数に代入する
- それぞれの条件で見つかったコンテンツデータのIDを、フィールド間のOR検索にかける
コンテンツデータを検索して、見つかったコンテンツデータのIDを変数に代入するには、MTSearchContentsタグに「content_ids="変数名"」というモディファイアを指定します。
例えば、「商品」というコンテンツタイプがあるときに、以下のどちらかの条件を満たすコンテンツデータを検索したいとします。
- 「ジャンル」というカテゴリ型のフィールドで、「シャツ」というカテゴリに属する
- 「商品名」というテキスト型のフィールドに、「シャツ」という値を含む
2つの条件で見つかったコンテンツデータのIDを、それぞれ「cid1」「cid2」という変数に代入する場合、以下のようにテンプレートを組みます。
<mt:SearchContents content_type="商品" content_ids="cid1">
<$mt:SearchContentCategory content_field="ジャンル" category="シャツ"$>
</mt:SearchContents>
<mt:SearchContents content_type="商品" content_ids="cid2">
<$mt:SearchContentContain content_field="商品名" values="シャツ"$>
</mt:SearchContents>
<mt:SearchContents content_type="商品">
<mt:SearchContentSection>
<$mt:SearchContentValues field="id" values="$cid1"$>
<$mt:SearchContentUnion op="or"$>
<$mt:SearchContentValues field="id" values="$cid2"$>
</mt:SearchContentSection>
</mt:SearchContents>
3.SearchContentsプラグイン関係の記事の一覧
- SearchContentsプラグイン(その1・インストールとライセンス)
- SearchContentsプラグイン(その2・フィールドの値で検索)
- SearchContentsプラグイン(その3・フィールドの値の一部分で検索)
- SearchContentsプラグイン(その4・フィールドの値の大小関係で検索)
- SearchContentsプラグイン(その14・検索結果出力テンプレートの作成)
- SearchContentsプラグイン(その5・カテゴリで検索)
- SearchContentsプラグイン(その6・タグで検索)
- SearchContentsプラグイン(その7・共通フィールドで検索)
- SearchContentsプラグイン(その8・AND検索)
- SearchContentsプラグイン(その9・OR検索)
- SearchContentsプラグイン(その10・検索結果の一部を取り出す)
- SearchContentsプラグイン(その11・検索結果を並べ替える)
- SearchContentsプラグイン(その12・検索結果の出力)
- SearchContentsプラグイン(その13・検索フォームの作成)
- SearchContentsプラグイン(その15・検索フォームと検索結果出力テンプレートの例)
