我使用以下代码向用户配置文件添加了一个自定义字段:
/*** Adding extra field to get the the user who creates the another user during ADD NEW USER ***/
<?php
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){
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\');
?>
现在我看到一个领域
created by 当我从管理面板创建新用户时,现在我想通过字段获取用户
created_by
法典:https://codex.wordpress.org/Function_Reference/get_users
根据法典,应该是这样的:
<?php
get_users( $args );
$args = array(
\'meta_key\' => \'\',
\'meta_value\' => \'\',
)
$blogusers = get_users( $args );
// Array of stdClass objects.
foreach ( $blogusers as $my_users ) {
echo $my_users. \'<br/>\';
}
?>
我尝试了多种选择
meta_key
和
meta_value
但所有的返回都是空的。
什么是exact meta_key
和meta_value
对于我使用函数创建的字段custom_user_profile_fields
?
如何通过自定义字段获取用户created_by
?
最合适的回答,由SO网友:s_ha_dum 整理而成
我使用函数custom\\u user\\u profile\\u fields创建的字段的确切meta\\u键和meta\\u值是多少?
created_by
和一些用户ID,例如:
$args = array(
\'meta_key\' => \'created_by\',
\'meta_value\' => 123,
)
你可以使用
meta_query
用于更复杂的搜索。
$args = array(
\'meta_query\' => array(
array(
\'key\' => \'created_by\',
\'compare\' => \'EXISTS\',
),
)
);
var_dump(get_users($args));
但从本质上讲,你所做的是正确的。