WordPressの勉強がてら

WordPressの初心者が独学でホームページ作成したときの技術メモ

WordPressの勉強がてら

カスタムフィールドの値をOR条件で抽出

      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 );

 

「価格」条件を追加

100円か200円で抽出。

カスタムフィールドの条件は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',
            )
        ),
);

 

100円以上で抽出。

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’ バイナリー

 - WordPress

  • このエントリーをはてなブックマークに追加

  関連記事

wordpress情報
「Events Manager」でオリジナルのプレースホルダーを追加する

便利なイベントカレンダープラグイン「Events Manager」ですが、フォー …

wordpress情報
特定のページのみSSLに対応させる

申し込みページに住所等の個人情報を入力する場合は、情報流出を防ぐためSSLを導入 …

wordpress情報
「Events Manager」で現在開催中のイベントを示すプレースホルダーを作成する

以前に「Events Manager」でオリジナルのプレースホルダーを追加するに …

wordpress情報
会員専用ページをつくる

会員専用ページをつくるにあたり、いろいろなプラグインがある。今回クライアントの要 …

wordpress情報
ログイン画面のロゴを変更

クライアントに納品するようなサイトはWordPressのログイン画面のロゴをオリ …

wordpress情報
ショートコードやタグを登録して簡単に呼び出す

WordPressの記事を登録するときショートコードやタグなど手で打つのはめんど …

wordpress情報
カスタム投稿をプラグインを使って実装し抽出する

WordPressでブログだけでなく通常のコーポレートサイトのようなページを作成 …

wordpress情報
ログオフせずに簡単にユーザーを切り替える

会員制のサイトや、クライアントの権限を「編集者」として引き渡しする場合など、動作 …

wordpress情報
「Events Manager」の検索フォームにイベント属性フィールドを追加する

以前「Events Manager」の検索フォームにカスタム分類のフィールドを追 …

wordpress情報
Contact Form 7の初期値をクエリストリングから取得する

お問い合わせフォームを作成するときよく使うプラグイン「Contact Form …