[英]Wordpress: Sort usermeta data when using get_user_meta()
我已将$table_name_employee
定义$table_name_employee
插件中的一个表,其中包含大量用户信息。 ID
字段镜像wp_users
的字段
话虽如此,我有这段代码...
$SQLQuery="select * from {$table_name_employee}";
$wpdb->query($SQLQuery);
$results=$wpdb->get_results($SQLQuery,ARRAY_A);
foreach($results as $result)
{
$all_meta_for_user = get_user_meta( $result['ID'] );
$last_name = $all_meta_for_user['last_name'][0];
$first_name = $all_meta_for_user['first_name'][0];
$doc_training_responsibility_option.= "\t<option value='{$result['ID']}'>{$last_name}, {$first_name}</option>\n";
}
稍后在我的代码中,我使用$doc_training_responsibility_option
在<select>
内输出<option>
<select>
。
它按预期工作; 但是,结果未排序。 我尝试了几种方法将数据添加到数组中,而不是立即定义$doc_training_responsibility_option
。 我的意图是按姓氏对数组进行排序,然后将该数组输出到$doc_training_responsibility_option
但每次尝试均失败。
****更新****
我的尝试在下面...
$SQLQuery="select * from {$table_name_employee}";
$wpdb->query($SQLQuery);
$results=$wpdb->get_results($SQLQuery,ARRAY_A);
$r=array(); $i=0;
foreach($results as $result)
{
$all_meta_for_user = get_user_meta( $result['ID'] );
$r[$i]['ID']=$result['ID'];
$r[$i]['last_name']=$all_meta_for_user['last_name'][0];
$r[$i]['first_name']=$all_meta_for_user['first_name'][0];
$i++;
}
// ************************************************
// NOT SURE WHAT TO DO HERE TO SORT $r BY last_name
// ************************************************
foreach ($r as $result)
{
$doc_training_responsibility_option.= "\t<option value='{$result['ID']}'>{$result['last_name']}, {$result['first_name']}</option>\n";
}
现在,您将在此变量中获取用户ID:
$result['ID']
现在,您需要从wp_usermeta
获取所有用户wp_usermeta
排序。
因此,您需要使用get用户来完成您的任务。
$u = get_users(array('blog_id' => $GLOBALS['blog_id'], 'meta_key' => 'last_name', 'orderby' => 'meta_value'));
foreach ($u as $user) {
$n = get_user_meta( $user->ID, 'last_name', true );
echo "<option>";
echo $n;
echo "</option>";
}
基于@Mauro注释,我创建了下面的代码。
// Create list of plugin users
$SQLQuery="select ID from {$table_name_employee}";
$wpdb->query($SQLQuery);
$results=$wpdb->get_results($SQLQuery,ARRAY_A);
foreach($results as $result)
{
$plugin_user[]=$result[ID];
}
// Get list of WP users (sorted)
$u = get_users(array('blog_id' => $GLOBALS['blog_id'], 'meta_key' => 'last_name', 'orderby' => 'meta_value'));
foreach ($u as $user)
{
// See if WP user is also a plugin user
if(in_array($user->ID,$plugin_user) )
{
$all_meta_for_user = get_user_meta( $user->ID );
$last_name=$all_meta_for_user['last_name'][0];
$first_name=$all_meta_for_user['first_name'][0];
$doc_training_responsibility_option.= "\t<option value='{$user->ID}'>{$last_name}, {$first_name}</option>\n";
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.