0

是否可以使用wp_query为网站及其数据创建所有 Wordpress 用户的列表?如果是这样,怎么做?

我希望能够列出所有用户(该站点对新注册开放)及其所有详细信息,例如姓名、用户名等,以及我以以下格式添加的一些自定义元数据:

function my_user_contactmethods($user_contactmethods) {

$user_contactmethods['Address'] = __('Address');
$user_contactmethods['Website'] = __('Website');
$user_contactmethods['Phone'] = __('Phone');
$user_contactmethods['Nationality'] = __('Nationality');
$user_contactmethods['Registering as'] = __('Registering as');
$user_contactmethods['Submit work'] = __('Submit work?');
$user_contactmethods['Attend'] = __('Attend?');
$user_contactmethods['Volunteer'] = __('Volunteer?');

// etc for each field you want to appear

return $user_contactmethods;

}

或者,如果有其他方法可以做到这一点,那么我就完全开放了。

4

2 回答 2

3

如果您可以不使用wp_query,您可以使用get_usersget_user_meta检索所有用户及其自定义数据的列表。

例如,

<?php
    $blog_id = 1; //blog id
    $str = 'blog_id='.$blog_id;
    $users = get_users($str);
    $list = array();
    $i=0;
    foreach ($users as $user) {
       $list[$i]['id']=$user->ID;
       $list[$i]['email']=$user->email;
       $list[$i]['custom-1']= get_user_meta( $$user->ID, 'custom-1', true );
       $i++;
    }

?>

您可以检索所需的字段。或者您可以添加所有数据并将您的自定义字段与它们一起附加。

于 2013-01-16T11:40:07.647 回答
0

看起来查询用户的正确方法是使用WP_User_Query. 除了 foreach 循环之外,似乎与 WP_Query 的工作方式非常相似:

<?php
$args = array(
    .
    .
    .
);

// The Query
$user_query = new WP_User_Query( $args );

// User Loop
if ( ! empty( $user_query->get_results() ) ) {
    foreach ( $user_query->get_results() as $user ) {
        echo '<p>' . $user->display_name . '</p>';
    }
} else {
    echo 'No users found.';
}
?>

这是完整的文档和可用属性列表

于 2021-01-22T18:33:51.960 回答