get_postsで、複数のカスタムフィールドをキーにして検索・取得する方法

get_postsで、投稿に含まれるカスタムフィールドをキーにして投稿を検索・取得する場合、一つのカスタムフィールドだけなら、『meta_key』『meta_value』を使って、以下のコードで可能。

$args = array(
	'post_type' => 'post',
	'meta_key' => 'subtitle',
	'meta_value' => '(キーワード)'
);
$post_list = get_posts( $args );

また『meta_compare』というパラメータを使って、比較演算子を変更することも可能。デフォルトは『=』。例えば「値が含まれている場合」というような条件を付けたい時は以下のように、『meta_value』は『null』、『meta_compare』は『!=』にする。

$args = array(
	'post_type' => 'post',
	'meta_key' => 'subtitle',
	'meta_value' => 'null',
	'meta_compare' => '!='
);
$post_list = get_posts( $args );

『meta_compare』には、『>=』『>』『<』『<=』『LIKE』などが使用可能。 もし複数のカスタムフィールドをキーにして検索・取得したい場合には、以下のように『meta_query』を使う。

$args = array(
	‘post_type’ => ‘news’,
	‘meta_query’ => array(
		array(
			‘key’ => ‘url’,
			‘value’ => ‘www.sandalot.com’
		),
		array(
			‘key’ => ‘area’,
			‘value’ => null,
			‘compare’ => ‘!=’
		)
	)
);
$post_list = get_posts( $args );

『meta_query』にパラメータを示す配列を指定する。配列の中は『key』『value』『compare』を使う。

スポンサードリンク

get_postsで、複数のカスタムフィールドをキーにして検索・取得する方法」への2件のフィードバック

  1. ピンバック: 【WordPress】「get_posts」関数を使ってみた | LINKBAL Engineer's Blog

  2. ピンバック: 【WordPress】カスタムフィールドの日付で期間内のスケジュールだけを並べ替えて表示する │ ノラWEB屋 野良人(のらんど)

twitterまたはFacebookでもコメントして頂けます