「WordPressで学ぶPHP(1)変数・制御構造編」が発売されました。
「WordPressで学ぶPHP」シリーズの第1巻で、WordPressを通してPHPを学んでいく本です。
この本では、PHPの基本となる変数と制御構造について解説します。
Kindle本で、定価500円です。
ブログ記事詳細検索プラグイン(その4・「ブログ記事のフィールドの値が○○以上」等の場合の検索)
SearchEntriesプラグインの第4回として、「ブログ記事のフィールドの値が○○以上」等の条件で検索する方法を解説します。
1.1つの値と比較する
「ブログ記事のフィールドの値が○○以上」等の条件で検索するには、「SearchConditionCompare」というタグを使います。
1つの値と比較する場合は、書き方は以下のようになります。
<$mt:SearchConditionCompare field="フィールド名" 演算子="値"$>
fieldモディファイアの「フィールド名」には、ブログ記事のフィールドを表す値を、以下の表から指定します。
フィールド | フィールド名 |
---|---|
ID | id |
タイトル | title |
本文 | text |
続き | text_more |
概要 | excerpt |
キーワード | keywords |
公開日 | authored_on |
最終更新日 | modified_on |
出力ファイル名 | basename |
ユーザーのID | author_id |
フォーマット | convert_breaks |
コメント数 | comment_count |
トラックバック数 | ping_count |
また、「演算子」と「値」で、比較の「演算子」は以下の表から指定します。
比較方法 | 演算子 |
---|---|
○○より大きい(>) | gt |
○○より小さい(<) | lt |
○○以上(≧) | ge |
○○以下(≦) | le |
例えば、「コメントがついているブログ記事」を検索して出力したいとします。
「コメントがついている」という条件は、「コメントが1件以上」という条件と同じです。
したがって、以下のようにテンプレートタグを組みます。
<mt:SearchConditions> <$mt:SearchConditionCompare field="comment_count" ge="1"$> </mt:SearchConditions> <mt:IfNonZero tag="SearchLoadedEntryCount"> <ul> <mt:Entries> <li><$mt:EntryTitle$>, <$mt:EntryCommentCount$></li> </mt:Entries> </ul> </mt:IfNonZero>
日付のフィールド(authored_onなど)を条件判断に使いたい場合は、年月日時分秒をつなげて14桁の数値で表します(年4桁、その他各2桁)。
例えば、「2010年以降に書いたブログ記事」を検索したいとします。
この条件は、「authored_onフィールド(公開日時)の値が20100101000000(2010年1月1日0時0分0秒)以上」と表すことができますので、MTSearchConditionCompareタグを以下のように書きます。
<$mt:SearchConditionCompare field="authored_on" ge="20100101000000"$>
2.2つの値と比較する
MTSearchConditionCompareタグにlt等のモディファイアを2つ指定すれば、「○○以上□□以下」などの条件を指定することもできます。
例えば、「2010年4月に書いたブログ記事」を検索したいとします。
この条件は、「authored_onフィールドの値が20100401000000(2010年4月1日0時0分0秒)以上で、かつ2010050100000(2010年5月1日0時0分0秒未満)」と表すことができます。
したがって、MTSearchConditionCompareタグを以下のように書きます。
<$mt:SearchConditionCompare field="authored_on" ge="20100401000000" lt="20100501000000"$>
なお、MTSearchConditionValuesタグでは、「フィールドの値が0」という条件を指定することができませんでした。
この条件は、MTSearchConditionCompareタグを使って、「0以上0以下」という条件で指定することができます。
例えば、「コメントがついていない(=comment_countフィールドの値が0)」という条件は、以下のように指定します。
<$mt:SearchConditionCompare field="comment_count" ge="0" le="0"$>
3.MTSearchConditionValues/MTSearchConditionLikeタグとの組み合わせ
MTSearchConditionCompareタグは、MTSearchConditionValuesタグやMTSearchConditionLikeタグと組み合わせることもできます。
例えば、以下の条件でブログ記事を検索して出力したいとします。
- IDが1番のユーザーが書いた
- タイトルに「Movable Type」か「MT」を含む
- 2010年4月に書いた
この場合、以下のようにテンプレートタグを組みます。
<mt:SearchConditions> <$mt:SearchConditionValues field="author_id" values="1"$> <$mt:SearchConditionLike field="title" values="Movable Type,MT"$> <$mt:SearchConditionCompare field="authored_on" ge="20100401000000" lt="20100501000000"$> </mt:SearchConditions> <mt:IfNonZero tag="SearchLoadedEntryCount"> <ul> <mt:Entries> <li><$mt:EntryTitle$>, <$mt:EntryAuthorID$>, <$mt:EntryDate$></li> </mt:Entries> </ul> </mt:IfNonZero>
4.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プラグイン不具合修正