我想用WP_User_Query
类根据用户的特定meta
字段。
当我使用简单的单元查询时,它工作得很好:
$q = new WP_User_Query( array(
\'role\' => \'contributor\',
\'fields\' => \'all_with_meta\',
\'meta_key\' => \'first_meta\',
\'meta_value\' => \'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和second_meta
不为空
最合适的回答,由SO网友:birgire 整理而成
看起来您使用了错误的参数,请尝试以下操作(未测试):
$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\' => \'!=\'
)
)
)
);
我们使用
key
,
value
和
compare
中的参数
meta_query
大堆我还删除了
\'fields\' => \'all\'
零件,因为它是默认设置的。