カスタムフィールドの値をOR条件で抽出
2015/05/21
カスタム投稿を作成した時に、カスタムフィールドの条件をOR条件で抽出したかったりしたので調べたときのメモ。
WordPressの初心者が独学でホームページ作成したときの技術メモ

2015/05/21
カスタム投稿を作成した時に、カスタムフィールドの条件をOR条件で抽出したかったりしたので調べたときのメモ。
以下のような投稿タイプを作成
投稿タイプ:食べ物 [food]
カスタムタクソノミー:食べ物カテゴリ[food_category] 、タグ:果物[fruit]、肉[meat]、野菜[vegetable]
カスタムフィールド:価格[price]

こんな感じ。タクソノミーの条件は「tax_query」を使用する。
$args = array(
'post_type' => 'food',
'tax_query' => array(
array(
'taxonomy'=>'food_category',
'field' => 'slug',
'terms'=>array('fruit', 'meat'),
'operator' => 'IN',
)
),
);
query_posts( $args );
カスタムフィールドの条件はmeta_queryを使う。
$args = array(
'post_type' => 'food',
'meta_query' => array(
array(
'key'=>'price',
'value'=>array( '100','200'),
'compare'=>'IN'
)
),
'tax_query' => array(
array(
'taxonomy'=>'food_category',
'field' => 'slug',
'terms'=>array('fruit', 'meat'),
'operator' => 'IN',
)
),
);
compareに「>=」を指定し、数値なので「’type’=>’NUMERIC’」と型を指定する。
$args = array(
'post_type' => 'food',
'meta_query' => array(
array(
'key'=>'price',
'value'=>'100',
'compare'=>'>=',
'type'=>'NUMERIC'
)
),
'tax_query' => array(
array(
'taxonomy'=>'food_category',
'field' => 'slug',
'terms'=>array('fruit', 'meat'),
'operator' => 'IN',
)
),
);
条件の演算子はいろいろ指定できる。
| データ型 | 意味 | 有効なデータ型 |
| ‘=’ | 値と一致する | すべて(省略時) |
| ‘!=’ | 値と一致しない | すべて |
| ‘>’ | 値より大きい | 数値系・日時系 |
| ‘>=’ | 値以上 | 数値系・日時系 |
| ‘<‘ | 値より小さい | 数値系・日時系 |
| ‘<=’ | 値以下 | 数値系・日時系 |
| ‘LIKE’ | 値で指定した文字列に一致する | ‘CHAR’ |
| ‘NOT LIKE’ | 値で指定した文字列に一致しない | ‘CHAR’ |
| ‘IN’ | 値(配列)で指定した何れかに一致する | すべて |
| ‘NOT IN’ | 値(配列)で指定した何れにも一致しない | すべて |
| ‘BETWEEN’ | 2つの値で指定した範囲内(境界を含む) | 数値系・日時系 |
| ‘NOT BETWEEN’ | 2つの値で指定した範囲外 | 数値系・日時系 |
データの型もいろいろある。
| データ型 | 意味 |
| ‘CHAR’ | 文字 |
| ‘NUMERIC’ | ‘SIGNED’の別名 |
| ‘DECIMAL’ | 浮動小数点数 |
| ‘SIGNED’ | 整数(符号あり) |
| ‘UNSIGNED’ | 整数(符号なし) |
| ‘DATE’ | 日付 |
| ‘DATETIME’ | 日時 |
| ‘TIME’ | 時刻 |
| ‘BINARY’ | バイナリー |
会員専用ページをつくるにあたり、いろいろなプラグインがある。今回クライアントの要 …
申し込みページに住所等の個人情報を入力する場合は、情報流出を防ぐためSSLを導入 …
イベントカレンダーのプラグイン「Events Manager」には絞り込み検索が …
以前「Events Manager」の検索フォームにカスタム分類のフィールドを追 …
イベントカレンダーに欠かせないプラグイン「Events Manager」。今回は …
Webサイト作成後、クライアントに引き渡すとき、管理画面から不要なメニューは表示 …
「WordPress イベントカレンダー」で検索するといろんなイベントカレンダー …
便利なイベントカレンダープラグイン「Events Manager」ですが、フォー …
クライアントに納品するようなサイトはWordPressのログイン画面のロゴをオリ …
WordPressでブログだけでなく通常のコーポレートサイトのようなページを作成 …