get_users返回一个空数组。我检查了我的数据,密钥与数据库中的用户元字段匹配。
function upd_check_key() {
$key = get_query_var( 'upd' );
if( !empty( $key ) ) :
$user = get_users( array( 'meta_key' => 'upd_key', 'meta_value' => $key ) );
if( is_array( $user ) ):
//Get rank and add 5 points
$rank = get_usermeta( $user->ID, 'upd_rank' );
$new_rank = $rank+5;
$update_rank = update_user_meta( $user->ID, 'upd_rank', $rank );
//Get hit and increase by one.
$hit = get_usermeta( $user->ID, 'upd_hit' );
$new_hit = $hit+1;
$update_hits = update_user_meta( $user->ID, 'upd_hit', $new_hit );
echo '<h1>***************************************************************</h1>';
echo '<h1>USERID: '.$user->ID.'</h1>';
endif;
endif;
echo '<h1>USERRANK: '.$new_rank.'</h1>';
echo '<h1>USERHITS: '.$new_hit.'</h1>';
echo '<h1>UERKEY: '.$key.'</h1>';
echo var_dump( $user );
}
var_dump
没有返回任何内容,所以我认为数组是空的。
答案 0 :(得分:0)
get_
甚至wp_get_
肯定在工作时。对于后代来访的人,请不要害怕再次尝试get_users()
。这是WP_User_Query
的非常可靠的单行包装器,从而避免了调用$query->get_results()
的麻烦。这是一些经过验证的有效代码,它们始终按first_name
过滤我的用户:
$users = get_users(array(
'number' => -1,
'fields' => 'all',
'meta_key' => 'first_name',
'meta_value' => 'Benjamin'
)));
var_dump($users);