show user based on user_meta

时间:2018-05-23 作者:Muhammad Ibrahim

如果我的逻辑是这样的,可以向用户展示,最好给出说明

使用者

I have two users with usermeta:
user A have usermeta country with value "USA" and univ with value "UCLA"
user B ONLY have usermeta country with value "USA"
发布

I also have two posts:
post 1 contain postmeta country with value "USA" 
post 2 ONLY have postmeta country with value "USA" and state with value "TX"
逻辑

IF post have postmeta "COUNTRY" => "USA":
ECHO user A & user B
IF post have postmeta "COUNTRY" => "USA" AND have postmeta "UNIV" => "UCLA"
ONLY ECHO user A
因此,在第1篇文章中显示所有用户A&;但在帖子2中只显示用户A,因为用户A有状态。

到目前为止我的代码

get_users(array(
    \'orderby\' => \'display_name\',
    \'order\' => \'asc\',
    \'meta_query\' => array(
        \'relation\' => \'OR\', // Optional, defaults to "AND"
        array(
            \'key\' => \'verifier_assign_country\',
            \'value\' => $countryCode,
            \'compare\' => \'=\'
        ),
        array(
            \'relation\' => \'AND\',
            array(
                \'key\' => \'verifier_assign_univ\',
                \'value\' => $univCode,
                \'compare\' => \'LIKE\'
            )
        )
    )
), \'objects\');
谢谢你的帮助

1 个回复
SO网友:mmm

您可以创建如下条件参数:

$user_args = [
    \'orderby\' => \'display_name\',
    \'order\' => \'asc\',
    \'meta_query\' => array(
        array(
            \'key\' => \'verifier_assign_country\',
            \'value\' => $countryCode,
            \'compare\' => \'=\'
        ),
    )
];

if ("" !== $univCode) {

    $user_args["meta_query"][] = array(
        \'key\' => \'verifier_assign_univ\',
        \'value\' => $univCode,
        \'compare\' => \'LIKE\'
    );

}

$users = get_users($user_args);

结束

相关推荐

USERS表与USERS_METADATA表的关联似乎已中断

在将自定义主题构建部署到Go Daddy管理的WordPress安装(客户端请求,RIP)后,我注意到了一个问题,其中由WP后端中的管理员帐户创建的用户没有显示在用户列表中。它们出现在用户数据库中,但在users_metadata 表(有admin帐户的条目,但仅此而已)。users表表示没有分配主键-我不确定这是否是问题的一部分。我假设用户ID应该是主键,但很明显我不是SQL专业人士。我的客户需要能够创建用户,以便他的员工可以上传内容。我应该用什么树来解决这个问题?