カスタムフィールドの値を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’ | バイナリー |
便利なイベントカレンダープラグイン「Events Manager」ですが、フォー …
申し込みページに住所等の個人情報を入力する場合は、情報流出を防ぐためSSLを導入 …
以前に「Events Manager」でオリジナルのプレースホルダーを追加するに …
会員専用ページをつくるにあたり、いろいろなプラグインがある。今回クライアントの要 …
クライアントに納品するようなサイトはWordPressのログイン画面のロゴをオリ …
WordPressの記事を登録するときショートコードやタグなど手で打つのはめんど …
WordPressでブログだけでなく通常のコーポレートサイトのようなページを作成 …
会員制のサイトや、クライアントの権限を「編集者」として引き渡しする場合など、動作 …
以前「Events Manager」の検索フォームにカスタム分類のフィールドを追 …
お問い合わせフォームを作成するときよく使うプラグイン「Contact Form …