WP_Queryを使ってカスタムフィールドの特定の値を絞り込んで一覧表示するコードをご紹介します。
カスタムフィールドの特定の値を絞り込んで一覧表示方法
コードは以下になります。
<?php $args = Array(
'post_type' => 'post',//投稿タイプを指定.カスタム投稿ならカスタム投稿名
'posts_per_page' => -1, //ページあたり何件表示するか。-1の場合全て表示
'meta_key' => 'test',//カスタムフィールドキー
'meta_value' => '値'//絞り込みたいカスタムフィールドの値を入れる
);
$the_query = new WP_Query($args);
if($the_query -> have_posts()):
while($the_query -> have_posts()): $the_query -> the_post();
//ここに処理を記述
endwhile;
endif;
wp_reset_postdata();
?>
上記のコードは一つのカスタムフィールドを絞り込む方法です。
では複数絞り込みたい場合はどうすればいいか?
複数のカスタムフィールドの値を絞り込む方法
<?php $args = Array(
'post_type' => 'post',//投稿タイプを指定.カスタム投稿ならカスタム投稿名
'posts_per_page' => -1, //ページあたり何件表示するか。-1の場合全て表示
"meta_query" => array(
"relation" => "AND",
"a" => array(
"key" => "test", //カスタムフィールドキー名
),
"b" => array(
"key" => "test2",//カスタムフィールドキー名
),
),
"orderby" => array(
"a" => "ASC", //順番
"b" => "ASC",
),
);
$the_query = new WP_Query($args);
if($the_query -> have_posts()):
while($the_query -> have_posts()): $the_query -> the_post();
//ここに処理を記述
endwhile;
endif;
wp_reset_postdata();
?>
複数の値で絞り込みたい場合は配列を使用して絞り込みます。
以上になります。