如何根据用户的创建者获取用户列表?

时间:2015-05-22 作者:Riffaz Starr

我有两个可以创建其他用户的用户。但他们的角色不同。

Tom-角色是管理员-Jackie-角色是CMS经理(自定义创建的角色)两者都可以创建新用户。CMS Manger 通过以下代码获取此功能:

add_action( \'after_setup_theme\', \'add_caps_to_custom_roles\' );
function add_caps_to_custom_roles() {
  $caps = array(
    \'list_users\',
    \'edit_users\',
    \'create_users\',
    \'delete_users\',
  );
  $roles = array(
    get_role( \'CMS Manager\' ),
  );
  foreach ($roles as $role) {
    foreach ($caps as $cap) {
      $role->add_cap( $cap );
    }
  }
}
我现在在这个网站上有120个用户。但不知道是谁创造了谁。我想要一个显示以下内容的列表:

创建的用户列表tom- Tom的用户创建的用户列表jackie- Jackie的用户们我曾经提到过这一点:https://codex.wordpress.org/Function_Reference/get_user_by但似乎功能NO 上述类型列表的解决方案。

如何创建这些列表?

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

我找到了。

/*** Adding extra field to get the the user who creates the another user during ADD NEW USER ***/
function custom_user_profile_fields($user){
    if(is_object($user))
        $created_by = esc_attr( get_the_author_meta( \'created_by\', $user->ID ) );
    else
        $created_by = null;
    ?>
    <h3>Extra profile information</h3>
    <table class="form-table">
        <tr>
            <th><label for="created_by">Created By</label></th>
            <td>
                <input type="text" class="regular-text" name="created_by" value="<?php echo $created_by; ?>" id="created_by" /><br />
                <span class="description">The person who creates this user</span>
            </td>
        </tr>
    </table>
<?php
}
add_action( \'show_user_profile\', \'custom_user_profile_fields\' );
add_action( \'edit_user_profile\', \'custom_user_profile_fields\' );
add_action( "user_new_form", "custom_user_profile_fields" );

function save_custom_user_profile_fields($user_id){
    # again do this only if you can
    //if(!current_user_can(\'manage_options\'))
      //  return false;

    # save my custom field
    update_user_meta($user_id, \'created_by\', $_POST[\'created_by\']);
}
add_action(\'user_register\', \'save_custom_user_profile_fields\');
add_action(\'profile_update\', \'save_custom_user_profile_fields\');
然后querying 按自定义字段列出的用户created_by.. 就是这样。。

结束

相关推荐

Custom Post Type Capabilities

我有一个自定义的帖子类型,我希望作者能够编辑其他帖子,但不能删除其他帖子。我的代码如下:$labels = array( \'name\' => __( \'Book\', \'textdomain\' ), \'singular_name\' => __( \'Book\', \'textdomain\' ), \'menu_name\' => __( \'Books\', \'textdomain\' ),&#