Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress:使用get_user_meta()时对用户元数据进行排序_Php_Wordpress - Fatal编程技术网

Php Wordpress:使用get_user_meta()时对用户元数据进行排序

Php Wordpress:使用get_user_meta()时对用户元数据进行排序,php,wordpress,Php,Wordpress,我在插件中将$table\u name\u employee定义为一个包含大量用户信息的表。ID字段镜像了wp\u用户中的字段 也就是说,我有这个密码 $SQLQuery="select * from {$table_name_employee}"; $wpdb->query($SQLQuery); $results=$wpdb->get_results($SQLQuery,ARRAY_A); foreach($results as $result) { $all_meta

我在插件中将
$table\u name\u employee
定义为一个包含大量用户信息的表。
ID
字段镜像了
wp\u用户中的字段

也就是说,我有这个密码

$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";
}

现在,您将在以下变量中获取用户ID:

$result['ID']
现在,您需要从
wp\u usermeta
获取所有用户,并按姓氏排序

因此,您需要使用来完成任务

$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>";
        }
$u=get_用户(数组('blog_id'=>$GLOBALS['blog_id'],'meta_key'=>'姓氏','orderby'=>'meta_值');
foreach($u作为$user){
$n=get\u user\u meta($user->ID,'last\u name',true);
回声“;
echo$n;
回声“;
}

基于@Mauro comment,我创建了下面有效的代码

// 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";
    }
}
//创建插件用户列表
$SQLQuery=“从{$table\u name\u employee}中选择ID”;
$wpdb->query($SQLQuery);
$results=$wpdb->get_results($SQLQuery,ARRAY_A);
foreach($results作为$result)
{
$plugin_user[]=$result[ID];
}
//获取WP用户列表(已排序)
$u=get_用户(数组('blog_id'=>$GLOBALS['blog_id'],'meta_key'=>'姓氏','orderby'=>'meta_值');
foreach($u作为$user)
{
//查看WP用户是否也是插件用户
if(在数组中($user->ID,$plugin\u user))
{
$all\u meta\u for\u user=get\u user\u meta($user->ID);
$last_name=$all_meta_for_user['last_name'][0];
$first_name=$all_meta_for_user['first_name'][0];
$doc\u training\u responsibility\u option.=“\t{$last\u name},{$first\u name}\n”;
}
}

Hi,您在查询中是否尝试了
orderby
?@Mauro-无法使用
orderby
,因为
姓氏
不在
$table\u name\u employee
中-它在
wp\u usermeta
中-这就是为什么我在获得查询结果后使用
get\u user\u meta()
。然后,使用我调整了你的代码并使其正常工作。看看我的答案。谢谢
// 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";
    }
}