「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
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・検索フォームと検索結果出力テンプレートの例)