我已将$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
在<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";
}
答案 0 :(得分:0)
现在您正在获取此变量中的用户ID:
$result['ID']
现在您需要从wp_usermeta
获取所有用户并按姓氏排序。
因此,您需要使用get users来完成任务。
$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>";
}
答案 1 :(得分:0)
基于@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";
}
}