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情報
管理画面(ダッシュボード)のメニューの表示/非表示を手動で操作する方法

Webサイト作成後、クライアントに引き渡すとき、管理画面から不要なメニューは表示 …

wordpress情報
使用しているテンプレートファイル名を表示

WordPressのテーマを自分て作成しているとき現在表示されているのがどのテン …

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

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

wordpress情報
Contact Form 7をレスポンシブ対応する

お問い合わせフォームを作るときに定番のプラグイン「Contact Form 7」 …

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

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

wordpress情報
ソースコードを投稿するプラグイン

ソースコードを投稿し綺麗に表示したい。でもCSSをつくるのは面倒。 でいろんな言 …

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

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

wordpress情報
「Events Manager」の絞り込み検索フォームのリストの順序を変更する方法

イベントカレンダープラグイン「Events Manager」について便利な絞り込 …

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

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

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

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