バージョンによるバグらしいけど、一応メモ。
「カスタムフィールドテンプレート」で
[test_field]
type=checkbox
value=true
のようなフィールドを追加し、次にテンプレートのquery_postsで
[PHP]
$query = array(
array(
'key' => 'test_field',
'value' => 'true',
'compare' => '!=',
'type' => 'CHAR'
)
)
);
[/PHP]
こんな感じの条件文(つまりtest_filedにチェックが入ってない場合)を書いたところ、一向にヒットしませんでした。
もちろん、チェックが入っていない記事は存在します。
逆に
[PHP]
$query = array(
array(
'key' => 'test_field',
'value' => 'true',
'compare' => '=',
'type' => 'CHAR'
)
)
);
[/PHP]
だと、チェックが入っている記事がちゃんと表示されました。
どうもvalueが空状態だと条件にヒットしなくなるバグが3.1のころにあったみたいです。
それは3.2で正常に戻ったそうなんですが、自分が使っているのは3.4.2・・・
バグ復活といったところでしょうか。
解決方法につきましては、以下のサイトで紹介されておりました。
WordPress3.1系:meta_queryでvalueが空の時の対処法 | ライ麦畑でつかまえられて、思わず出たオナラが案外フローラルだった感動を貴方にも。
他にもラジオボタンやプルダウンにして、絶対に値が入るようにするなどの方法を取るという手もあります。(自分はソースを変えるのが面倒だったので、この方法で回避しました。)