文字サイズ
  • 文字サイズを「小」にする
  • 文字サイズを「中」にする
  • 文字サイズを「大」にする

公益財団法人岡山県健康づくり財団


新規ページ追加

先週3回にわたってtax_queryパラメータを使ったカテゴリーや投稿タグ、投稿フォーマットの絞り込みを整理したが、その途中で目に付いたのが ‘meta_query’パラメータ。この’meta_query’パラメータは、カスタムフィールドの絞り込み条件を指定するためのもので、3.2で登 場した新しいパラメータのようだ。
まずはカスタムフィールド関連パラメータのおさらいから。
これまでのquery_posts関数でカスタムフィールドを使うケースとしては、特定のカスタムフィールドが設定されているものを絞り込む場合と、カスタムフィールドの値でソートする場合がある。例えば’ranking’が’1’の投稿を絞り込む場合は

query_posts( 'meta_key=ranking&meta_value=1' );

といった感じで記述できる。
また’ranking’で昇順にソートする場合なら

query_posts( 'meta_key=ranking&orderby=meta_key&order=asc' );

と指定できる。

‘meta_query’を使ってみる

先ほどの’ranking’が’1’の投稿を絞り込みを’meta_query’パラメータで指定すると

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

といった感じになる。条件指定の’key’にはカスタムフィールドの名前として’ranking’を、’value’には’1’を指定することで、 ‘ranking’の値が’1’の投稿を絞り込んでいる。この’meta_query’パラメータは、先週紹介した’tax_query’パラメータと同 じような使い方ができるが、条件指定の連想配列の中身が若干違うので注意したい。

データ型と多彩な条件指定が可能

カスタムフィールドの値は基本的に文字列形式で保存されているが、それらは文字列としてではなく、数値、日時として使用することもあるだろう。 ‘meta_query’パラメータでは、データ型を指定することで、数値や日時として条件指定できる。使用できるデータ型は次の通り。

データ型 意味
‘CHAR’ 文字
‘NUMERIC’ ‘SIGNED’の別名
‘DECIMAL’ 浮動小数点数
‘SIGNED’ 整数(符号あり)
‘UNSIGNED’ 整数(符号なし)
‘DATE’ 日付
‘DATETIME’ 日時
‘TIME’ 時刻
‘BINARY’ バイナリー
ページの一番上へ