お知らせ

Movable Type 5.1 Webサイト製作ガイドVolume 22011年7月20日

Movable Type 5.1 Webサイト製作ガイドVolume 2」を発売しました。
前書「Movable Type 5 Webサイト製作ガイド Volume 2」をMovable Type 5.1対応に改訂しました。 「Movable Type 5.1 Webサイト製作ガイドVolume 1」の続編で、変数等の応用的な機能や、ウェブサイトやテーマなどのMovable Type 5の新機能についてしっかり解説した書籍です。
Movable TypeでWeb製作をされている方などにお勧めです。
PDFによる販売で、当サイトでのみ購入できます(書店では購入できません)

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

ブログ記事詳細検索プラグイン(その9・カスタムフィールドでの検索の基本)

| コメント(0) | トラックバック(0)

SearchEntriesプラグインでは、カスタムフィールドでの検索を行うこともできます。

1.MTSearchConditionCFSectionタグ

カスタムフィールドで検索するには、フィールドごとに「MTSearchConditionCFSection」というタグのブロックを作り、そのブロックの中に条件を指定するタグを書きます。

<mt:SearchConditions>
  <mt:SearchConditionCFSection field="カスタムフィールドのベースネーム">
    カスタムフィールドの検索条件を指定するタグ
  </mt:SearchConditionCFSection>
</mt:SearchConditions>

fieldモディファイアで、検索対象のカスタムフィールドのベースネームを指定します。
ベースネームは、カスタムフィールドの作成の際に、「ベースネーム」の欄に設定した値です。

カスタムフィールドのベースネーム

2.検索条件を指定するテンプレートタグ

カスタムフィールドでの検索条件は、以下のテンプレートタグで指定します。
いずれのテンプレートタグも、ブログ記事のフィールドを検索する場合と書き方は同じです。
ただし、テンプレートタグ名に「CF」が入っていることと、fieldモディファイアを指定しない点が異なります。

条件テンプレートタグ
値が○○に等しい<$mt:SearchConditionCFValues values="値1","値2",・・・,"値n"$>
値に○○を含む<$mt:SearchConditionCFLike values="値"$>
値が○○より大きい等<$mt:SearchConditionCFCompare 演算子="値"$>
値が○○以上□□以下等<$mt:SearchConditionCFCompare 演算子1="値1" 演算子2="値2"$>

ただし、MTSearchConditionCFCompareタグで値を数値として比較できるようにしたい場合は、拙作のNumericCustomFieldsプラグインをインストールして、数値型のカスタムフィールドに値を入力しておく必要があります。
Movable Type標準のカスタムフィールドの型では、値は文字列として扱われますので、数値としての比較が正しく行われません。

3.検索の事例

ブログ記事に商品のデータを入力することを想定して、以下の表のようにカスタムフィールドを定義しているとします。
また、値も入力しているものとします。

カスタムフィールドカスタムフィールドの種類ベースネームテンプレートタグ
値段整数entry_priceMTEntryPrice
サイズテキストentry_sizeMTEntrySize
おすすめチェックボックスentry_recommendMTEntryRecommend

値段は、拙作のNumericCustomFieldsプラグインを使って、整数の値で入力してあるものとします。
また、サイズには「S,M,L」など、複数のサイズをコンマで区切って入力してあるものとします。

3-1.おすすめ商品を検索

お勧め商品(「おすすめ」のチェックボックスがオンになっている)商品を検索する場合、MTSearchConditionCFValuesタグを使って、「entry_recommendカスタムフィールドの値が1になっている」という条件で検索します。

<mt:SearchConditions>
  <mt:SearchConditionCFSection field="entry_recommend">
    <$mt:SearchConditionCFNotValues values="1"$>
  </mt:SearchConditionCFSection>
</mt:SearchConditions>
<mt:IfNonZero tag="SearchLoadedEntryCount">
  <ul>
  <mt:Entries>
    <li><$mt:EntryTitle$>(<$mt:EntryRecommend$>)</li>
  </mt:Entries>
  </ul>
</mt:IfNonZero>

3-2.SかMのサイズがある商品を検索

SかMのサイズがある商品を検索するには、MTSearchConditionsCFLikeタグを使って、「entry_sizeフィールドの値にSかMを含む」という条件で検索します。

<mt:SearchConditions>
  <mt:SearchConditionCFSection field="entry_size">
    <$mt:SearchConditionCFLike values="S,M"$>
  </mt:SearchConditionCFSection>
</mt:SearchConditions>
<mt:IfNonZero tag="SearchLoadedEntryCount">
  <ul>
  <mt:Entries>
    <li><$mt:EntryTitle$>(<$mt:EntrySize$>)</li>
  </mt:Entries>
  </ul>
</mt:IfNonZero>

3-3.1,000円以上2,000円未満の商品を検索

1,000円以上2,000円未満の商品を検索するには、MTSearchConditionsCFCompareタグを使って、「entry_priceフィールドの値が1,000以上2,000未満」という条件で検索します。

<mt:SearchConditions>
  <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:EntryPrice$>)</li>
  </mt:Entries>
  </ul>
</mt:IfNonZero>

4.SearchEntriesプラグイン関係の記事の一覧

SearchEntriesプラグイン関係のその他の記事は、以下のリンクから参照できます。

Facebook連携

当記事について「いいね」や「送信」を行っていただけると幸いです。


この記事についてウォールに投稿

トラックバック(0)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/2094.

コメントする


Facebookでコメント

試験的にFacebookのコメントフォームを設置しました。