如果要对进行直接数据库查询first_name
元字段正确的方式是:
global $wpdb;
$user_id = 2;
$meta_key = "first_name";
$first_name = $wpdb->get_var(
$wpdb->prepare(
"SELECT meta_value
FROM $wpdb->usermeta
WHERE user_id = %d
AND meta_key = %s",
$user_id,
$meta_key
)
);
echo $first_name;
但我认为使用
WP_User
对象,其中包含
first_name
元字段作为公共属性:
// Get the user with ID = 2
$user = new WP_User( 2 );
// Grab de the first_name
$first_name = $user->first_name;
您可以使用
get_user_meta()
正如@PaulH所建议的那样,功能还包括:
$first_name = get_user_meta(2, \'first_name\', true);
但我想
WP_User
对象优于
get_user_meta()
对于这种特殊情况,主要原因如下:
通常,在使用用户时,无论如何都必须加载用户对象。例如,在问题的描述中,用户对象已经加载,因此there is no need for anything else, 仅使用$user->first_name
.我不认为这两种方法在性能上有很大差异,但看看如何get_user_meta()
工程(at the end it uses this function), 它加载所有用户元字段,即使您只需要一个字段。其性能可能比加载WP_User
在某些情况下