我有两个可以创建其他用户的用户。但他们的角色不同。
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
上述类型列表的解决方案。
如何创建这些列表?
最合适的回答,由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
.. 就是这样。。