特定のmeta
フィールドに基づいてすべてのユーザーを一覧表示するためにWP_User_Query
クラスを使用しようとしています。
単純なシングルメタクエリーを使用すると、うまくいきます。
$q = new WP_User_Query( array(
'role' => 'contributor',
'fields' => 'all_with_meta',
'meta_key' => 'first_meta',
'meta_value' => '2'
) );
しかし、2つのフィールドを組み合わせたクエリを作成してsecond_meta
メタフィールドを埋めたユーザーを検索しようとすると、クエリにすべての貢献者が一覧表示されます(メタクエリはまったく機能しません)。
$q = new WP_User_Query( array(
'role' => 'contributor',
'fields' => 'all',
'meta_query' => array(
'relation' => 'AND',
0 => array(
'meta_key' => 'first_meta',
'meta_value' => '2'),
1 => array(
'meta_key' => 'second_meta',
'meta_value' => '',
'meta_compare' => '!='
)
)
) );
この複合メタクエリを機能させるにはどうすればよいですか?
もちろん、私は貢献者であるすべてのユーザーを見つけようとしています。first_meta
== 2 AND second_meta
は空ではありません
間違ったパラメータを使用しているようです。代わりにこれを試してください(未テスト)。
$q = new WP_User_Query(
array(
'role' => 'contributor',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'first_meta',
'value' => '2',
),
array(
'key' => 'second_meta',
'value' => '',
'compare' => '!='
)
)
)
);
meta_query
配列内のkey
、value
、およびcompare
パラメーターを使用しました。 'fields' => 'all'
部分も削除しました。デフォルトで設定されているからです。