【当ブログではアフィリエイト広告を利用しています】

[WordPress] query_posts やget_posts をカスタムフィールドを使って検索・抽出・絞り込む方法(複数も可)

attention この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。

特定のカスタムフィールドを設定した投稿記事のみを表示させます。
カテゴリーで絞り込んだりは、よくするのですがカスタム投稿などを使わない場合では、特定のカスタムフィールドで絞り込んで表示したいケースもあります。

 
◎特定のカスタムフィールド名と値が登録されている記事のみを抽出する

$args = array( 'meta_query' => array( array('key' => 'カスタムフィールド名', 'value' => 'カスタムフィールド値') ) );
$posts = get_posts($args);

 
◎特定のカスタムフィールド名がセットされている記事のみを抽出する

$args = array( 'meta_query' => array( array('key' => 'カスタムフィールド名', 'compare' => 'EXISTS') ) );
$posts = get_posts($args);

※「compare = EXISTS」の場合は、値指定(value)は省略できます。

 
◎「type」指定でデータ型を指定して、特定のカスタムフィールド名と値が登録されている記事を検索する

$args = array( 'meta_query' => array( array('key' => 'カスタムフィールド名', 'value' => 'カスタムフィールド値') ) );
$posts = get_posts($args);

 
◎複数のカスタムフィールドを指定して記事を絞り込む(「relation」で論理演算子を指定)

$args = array( 'meta_query' => array( 
			array('key' => 'カスタムフィールド名1', 'value' => 'カスタムフィールド値1'),
			array('key' => 'カスタムフィールド名2', 'value' => 'カスタムフィールド値2'),
			'relation'=>'AND'
		 ) );
$posts = get_posts($args);

 
 
 
このように、かなり色々なことができるので便利ですね。

ご意見・ご感想をお待ちしております。

いただいた情報は一般公開されません。(入力いただいたメールアドレスにてご返信させていただきます)
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。