如何自定义Wordpress list_users功能?

时间:2017-10-16 11:39:02

标签: php wordpress plugins wordpress-theming

我正在尝试找到一种在Wordpress中自定义list_users功能的方法, 我创建了一个名为my_admin的新角色,并为其添加了一些功能。 问题是list_users功能显示所有用户,而我想根据用户元字段仅显示一组用户。

关于edit_users功能的另一个问题是我可以限制此功能来编辑用户而不提升它们,此功能可以编辑用户并促进用户,这意味着它还可以更改用户角色。有什么方法可以从中删除此促销功能,我还可以只选择一个输入字段进行编辑并删除其他字段吗?

function my_new_service_capabilities() {

    // Get the role object.
    $editor = get_role( 'my_admin' );

    // A list of capabilities to add.
     $addcaps = array(
    'read',
    'edit_posts',
    'list_users', //I need to list users according to a user meta value.
    'edit_users', //I need to enable editing users in only one input field
    'moderate_comments',
    );

    foreach ( $addcaps as $acap ) {

        // Add the capability.
        $editor->add_cap( $acap );
    }
}
add_action( 'init', 'my_new_service_capabilities' );

2 个答案:

答案 0 :(得分:0)

我认为这应该适合你→ https://codex.wordpress.org/Class_Reference/WP_User_Query

步骤→

  1. 检索所有用户。
  2. 用户对于每个循环。
  3. 使用meta_query参数,因为WP将功能存储为json user_meta中的字符串。
  4. 我正在告诉你如何做到这一点→

     $entire_user_list = get_users();
        $somse_users= array();
    
        foreach($entire_user_list as $user){
    
            if($user->has_cap('specific_capability')){
                $somse_users[] = $user;
            }
    
        }
    

答案 1 :(得分:0)

我使用DOMDocument类解决了它。