「WordPressで学ぶPHP(1)変数・制御構造編」が発売されました。
「WordPressで学ぶPHP」シリーズの第1巻で、WordPressを通してPHPを学んでいく本です。
この本では、PHPの基本となる変数と制御構造について解説します。
Kindle本で、定価500円です。
ブログ記事詳細検索プラグイン(その3・「ブログ記事のフィールドの値に○○を含む」場合の検索)
SearchEntriesプラグインの第3回として、「ブログ記事のフィールドの値に○○を含む」という条件で検索する方法を解説します。
なお、プラグインのソースとパッケージ方法に一部不具合がありましたので、修正した版を公開しました。
お手数ですが、すでにアップロード済みの方は以下のファイルをいったん削除して、新版と差し替えてお使いください。
- 「plugins」ディレクトリの当プラグインのconfig.yamlファイル
- 「plugins」ディレクトリ→「lib」ディレクトリの当プラグインのファイル
1.SearchConditionLikeタグ
「ブログ記事のフィールドの値に○○を含む」という条件は、「SearchConditionLike」というテンプレートタグで指定します。
このタグの書き方は以下の通りです。
<$mt:SearchConditionLike field="フィールド名" values="値"$>
fieldモディファイアの「フィールド名」には、ブログ記事のフィールドを表す値を、以下の表から指定します。
フィールド | フィールド名 |
---|---|
ID | id |
タイトル | title |
本文 | text |
続き | text_more |
概要 | excerpt |
キーワード | keywords |
公開日 | authored_on |
最終更新日 | modified_on |
出力ファイル名 | basename |
ユーザーのID | author_id |
フォーマット | convert_breaks |
コメント数 | comment_count |
トラックバック数 | ping_count |
また、valuesモディファイアには、検索対象の値を指定します。
例えば、「タイトルに『Movable Type』を含む」というブログ記事を検索して、それらの一覧を出力するには、以下のように表します。
<mt:SearchConditions> <$mt:SearchConditionLike field="title" values="Movable Type"$> </mt:SearchConditions> <mt:IfNonZero tag="SearchLoadedEntryCount"> <ul> <mt:Entries> <li><$mt:EntryTitle$></li> </mt:Entries> </ul> </mt:IfNonZero>
2.複数の値で検索
SearchConditionsLikeタグでは、複数の値を検索対象にして、AND検索/OR検索/NOT検索を行うことができます。
2-1.OR検索
「○○または□□を含む」というように、複数のキーワードのうちのどれか1つを含むブログ記事を検索したい場合は、valuesモディファイアに、各キーワードをコンマ(,)で区切って並べるか、または「 OR 」で区切って並べます(ORの前後に半角スペースを入れます)。
例えば、「記事のタイトルに『Movable Type』か『MT』を含む」という条件は、以下のどちらかで表します。
<$mt:SearchConditionLike field="title" values="Movable Type,MT"$>
<$mt:SearchConditionLike field="title" values="Movable Type OR MT"$>
2-2.AND検索
「○○と□□を含む」というように、複数のキーワードをすべて含むブログ記事を検索したい場合は、valuesモディファイアに、各キーワードをプラス(+)で区切って並べるか、または「 AND 」で区切って並べます(ANDの前後に半角スペースを入れます)。
例えば、「記事のタイトルに『Movable Type』と『プラグイン』の両方含む」という条件は、以下のどちらかで表します。
<$mt:SearchConditionLike field="title" values="Movable Type+プラグイン"$>
<$mt:SearchConditionLike field="title" values="Movable Type AND プラグイン"$>
2-3.NOT検索
「○○を含まない」という条件は、「NOT(○○)」で表します。
例えば、「記事のタイトルに『Movable Type』を含まない」という条件は、以下のように表します。
<$mt:SearchConditionLike field="title" values="NOT(Movable Type)"$>
2-4.AND/OR/NOT検索の組み合わせ
AND/OR/NOTを組み合わせて、複雑な条件を指定することもできます。
例えば、「記事のタイトルに、『Movable Type』か『MT』を含み、かつ『プラグイン』か『カスタマイズ』を含む」という条件は、以下のように表します。
<$mt:SearchConditionLike field="title" values="(Movable Type OR MT) AND (プラグイン OR カスタマイズ)"$>
なお、ORよりANDの方が優先順位が高いので、ORを先に評価したい場合は、上の例のように、先に評価する部分を括弧で囲みます。
3.複数の検索条件タグの組み合わせ
検索条件を複数回使って、複数のフィールドを検索対象にすることもできます。
3-1.SearchConditionLikeタグを複数回使う
SearchConditionLikeタグを複数回使って、それぞれのフィールドに値が含まれるかどうかの条件を指定するすることもできます。
例えば、「記事のタイトルに『Movable Type』か『MT』を含み、かつ本文に『プラグイン』か『カスタマイズ』を含む」という条件は、以下のように表します。
<$mt:SearchConditionLike field="title" values="Movable OR MT"$> <$mt:SearchConditionLike field="text" values="プラグイン OR カスタマイズ"$>
また、以下のように書いても同じです。
<$mt:SearchConditionLike field="title" values="Movable Type,MT"$> <$mt:SearchConditionLike field="text" values="プラグイン,カスタマイズ"$>
3-2.SearchConditionLikeタグとSearchConditionValuesタグを組み合わせる
SearchConditionLikeタグとSearchConditionValuesタグを組み合わせることもできます。
例えば、「IDが1番のユーザーが書いた記事の中で、タイトルに『Movable Type』か『MT』を含む記事を検索する」という場合は、以下のように条件を書きます。
<$mt:SearchConditionValues field="author_id" values="1"$> <$mt:SearchConditionLike field="title" values="Movable Type OR MT"$>
また、2行目のMTSearchConditionLikeタグで、valuesモディファイアを「values="Movable Type,MT"」と書くこともできます。
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プラグイン不具合修正