SearchContentsプラグイン(その4・フィールドの値の大小関係で検索)

SearchContentsプラグインでは、「フィールドの値が○○より大きい」というように、フィールドの値を何かと比較して、その大小関係で検索することもできます。

1.MTSearchContentCompareタグ

大小関係で比較するには、MTSearchContentCompareというタグを使います。
content_fieldモディファイアでコンテンツフィールドの名前(またはID/ユニークID)を指定します。
そして、以下の4つのモディファイアを使って、値の大小関係を指定します。

モディファイア内容
gt="○○"フィールドの値が○○より大きい
lt="○○"フィールドの値が○○より小さい
ge="○○"フィールドの値が○○以上
le="○○"フィールドの値が○○以下

例えば、「商品」というコンテンツタイプがあり、そこに「単価」という数値型のコンテンツフィールドを定義しているとします。
この場合、「単価」フィールドの値が1000以下という条件で検索するには、以下のようにテンプレートを組みます。

<mt:SearchContents content_type="商品">
  <$mt:SearchContentContain content_field="単価" le="1000"$>
</mt:SearchContents>

2.値の範囲で検索

MTSearchContentCompareタグにgt/lt/ge/leモディファイアを2つ指定して、フィールドの値がある範囲に入るかどうかで検索することもできます。
例えば、「商品」コンテンツタイプの「単価」コンテンツフィールドの値が1000以上2000未満という条件で検索するには、以下のようにテンプレートを組みます。

<mt:SearchContents content_type="商品">
  <$mt:SearchContentContain content_field="単価" ge="1000" lt="2000"$>
</mt:SearchContents>

3.範囲外で検索

フィールドの値がある範囲の外かどうかを検索したい場合もあります。
その場合は、gt/lt/ge/leモディファイアを2つ指定し、かつ「or="1"」というモディファイアも指定します。

例えば、「商品」コンテンツタイプの「単価」コンテンツフィールドの値が1000未満か2000以上という条件で検索するには、以下のようにテンプレートを組みます。

<mt:SearchContents content_type="商品">
  <$mt:SearchContentContain content_field="単価" lt="1000" ge="2000" or="1"$>
</mt:SearchContents>

4.日時で検索

日付/時刻系のコンテンツフィールドを検索対象にすることもできます。
その場合、日付は「年月日時分秒」を連結した14桁の数値として表します(年は4桁、それ以外は2桁)。

例えば、「商品」コンテンツタイプに「販売開始日」という日時型のフィールドがあるとします。
そして、このフィールドの値が2018年内であるという条件で検索したいとします。

この場合は以下のようにテンプレートを組みます。
2018年1月1日0時0分0秒(20180101000000)以上、2019年1月1日0時0分0秒(20190101000000)未満という条件を指定しています。

<mt:SearchContents content_type="商品">
  <$mt:SearchContentContain content_field="販売開始日" ge="20180101000000" lt="20190101000000"$>
</mt:SearchContents>

5.SearchContentsプラグイン関係の記事の一覧

MT Cloud Starter Kit
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください