我找不到一种干净的本地方式来提取这些数据。我可以想出几种方法来做到这一点:首先,类似于:
$sql = "
SELECT user_id,meta_key,meta_value
FROM {$wpdb->usermeta}
WHERE ({$wpdb->usermeta}.meta_key = \'first_name\' OR {$wpdb->usermeta}.meta_key = \'last_name\')";
$ansatte = $wpdb->get_results($sql);
var_dump($sql);
$users = array();
foreach ($ansatte as $a) {
$users[$a->user_id][$a->meta_key] = $a->meta_value;
}
var_dump($users);
然后,您可以执行以下操作:
foreach ($users as $u) {
echo $u[\'first_name\'].\' \'.$u[\'last_name\'];
}
。。。到
echo
您的用户名。
第二种方法是一种更纯粹的SQL方法,您正在尝试:
$sql = "
SELECT {$wpdb->usermeta}.user_id,{$wpdb->usermeta}.meta_value as first_name,m2.meta_value as last_name
FROM {$wpdb->usermeta}
INNER JOIN {$wpdb->usermeta} as m2 ON {$wpdb->usermeta}.user_id = m2.user_id
WHERE ({$wpdb->usermeta}.meta_key = \'first_name\'
AND m2.meta_key = \'last_name\')";
$ansatte = $wpdb->get_results($sql);
foreach ($ansatte as $ansatte) {
echo $ansatte->first_name . \' \' . $ansatte->last_name;
}
您也可以使用
get_users()
或
WP_User_Query
要提取用户,但所需的meta\\u数据不在返回的数据中,检索它需要更多的工作。