WordPressのプラグイン「Advanced Custom Fields」を使ってカスタムフィールを使い、表示するかしないかの判定をするために、フィールドタイプをチェックボックスにしてカスタムフィールドを作った。
「meta_query」を使い、カスタムフィールドをキーにして絞り込みをすることにした。ここでは「ca_pickup」が「true」のものを抽出する条件にした。
$args = array(
'posts_per_page'=>'-1',
'post_type'=>'category',
'meta_query' => array(
array('key'=>'ca_pickup', 'value'=>'true', 'compare'=>'==')
)
);
$category= get_posts($args);
結果は1件もヒットせず。なぜ?「compare」部分を「LIKE」とするとヒットするようになった。でも、それではよろしくないので、チェックボックスの値を見てみると配列で返ってきていた。そのせいでLIKEじゃないとヒットしなかった様子。
カスタムフィールドの段階で、チェックボックスを選ぶのではなく、フィールドタイプを「真/偽」にして以下のコードに修正したらいい感じに動いた。
$args = array(
'posts_per_page'=>'-1',
'post_type'=>'category',
'meta_query' => array(
array('key'=>'ca_pickup', 'value'=>'1', 'compare'=>'==')
)
);
$category= get_posts($args);
表示するしないの判定だけなら最初から「真/偽」で作っとけばよかったって話でした。