使用组合元查询的WP_USER_QUERY-不工作?

时间:2014-10-28 作者:Gacek

我想用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 不为空

1 个回复
最合适的回答,由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, valuecompare 中的参数meta_query 大堆我还删除了\'fields\' => \'all\' 零件,因为它是默认设置的。

结束

相关推荐

根据自定义角色限制在users.php中显示的角色

我已使用一个名为\'regional_manager\'我为这个角色提供了添加\\u用户的功能,并为我的函数创建了一个自定义代码段。仅在“角色”下拉列表中列出订阅者的php文件。这意味着regional\\u manager角色只能创建具有subscriber角色的新用户。现在,我想阻止他们在访问时看到所有其他用户www.mydomain.com/wp-admin/users.php 有没有一种简单的方法可以做到这一点?有没有人可以举一个类似的例子来为我指明方向?