[wordpress] カスタムフィールドを条件付きで検索する方法

meta_queryコマンドでカスタムフィールドを条件付きで検索できる

field1が1である記事を検索↓↓

query_posts(
	array(
		'meta_query' => array(
			array(	'key'=>'field1',
				'value'=>'1'
			)
		)
	)
);

項目を比較して抽出する場合は以下の通り、compareを使用する↓↓

query_posts(
	array(
		'meta_query' => array(
			array(	'key'=>'address1',
				'value'=>'東京都',
				'compare'=>'='
			)
		)
	)
);

compareで使用できる演算子は以下の通り

データ型 意味 有効なデータ型
‘=’ 値と一致する すべて(省略時)
‘!=’ 値と一致しない すべて
‘>’ 値より大きい 数値系・日時系
‘>=’ 値以上 数値系・日時系
‘<‘ 値より小さい 数値系・日時系
‘<=’ 値以下 数値系・日時系
‘LIKE’ 値で指定した文字列に一致する ‘CHAR’
‘NOT LIKE’ 値で指定した文字列に一致しない ‘CHAR’
‘IN’ 値(配列)で指定した何れかに一致する すべて
‘NOT IN’ 値(配列)で指定した何れにも一致しない すべて
‘BETWEEN’ 2つの値で指定した範囲内(境界を含む) 数値系・日時系
‘NOT BETWEEN’ 2つの値で指定した範囲外 数値系・日時系

 

複数の条件で抽出する方法は以下の通り、複数の条件を記述し最後に’relation’=>’OR’もしくは’relation’=>’AND’で結合する↓↓
省略した場合はANDで処理される

query_posts(
	array(
		'meta_query' => array(
			array(	'key'=>'wakeup__at',
				'value'=>array( '01:00:00', '03:00:00' ),
				'compare'=>'BETWEEN',
				'type'=>'TIME'
				),
			array(	'key'=>'wakeup__at',
				'value'=>array( '05:00:00', '07:00:00' ),
				'compare'=>'BETWEEN',
				'type'=>'TIME'
				),
			'relation'=>'OR'
			)
		)
	);

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です