获取所有用户元密钥,然后按匹配值对用户进行分组

时间:2019-04-19 作者:markb

我使用的一个插件从我们的广告中生成用户元。其中一个关键是用户的管理器。

由于许多用户都有相同的管理器,因此我希望能够对所有用户进行分组。

我试图找到任何方法来做到这一点,或者改编这篇文章:getting all values for a custom field key (cross-post) 但我无法专心于SQL数据库的编写。

实际上,我希望能够将每个元管理器与拥有该管理器的所有用户循环meta_value 具有get_users

1 个回复
最合适的回答,由SO网友:markb 整理而成

最终找到了一个解决方案,以防任何人需要它:

function mb_get_user_meta_values( $mb_user_meta_key ) {
    if( empty($mb_user_meta_key) )
        return;

    $mb_get_users = get_users( array( \'meta_key\' => $mb_user_meta_key ) );
    $mb_user_meta_values = array();
    foreach( $mb_get_users as $mb_user ) {
        $mb_user_meta_values[] = get_user_meta( $mb_user->ID, $mb_user_meta_key, true );
    }
    $mb_user_meta_values = array_unique( $mb_user_meta_values );
    return $mb_user_meta_values;
}
然后我可以通过get_users 使用meta_value

相关推荐

如何在执行了钩子“preGet_USERS”之后获得所有的用户列表?

我在管理用户仪表板中有一个名为“用户类型”的自定义过滤器,我已经解决了在用户管理仪表板中显示它们的问题。但我不知道如何调用它们并将其保存在数组中,以便获取user\\u id并执行另一个操作。我的另一个操作是获取某个用户的所有元键,并将它们导出到excel文件中。但在我可以这样做之前,我应该有一个选项来过滤它们或只是导出所有用户,我已经执行了这项操作。function add_course_section_filter() { if ( isset( $_GET[ \'user_type\