使用wp_query显示所有用户的列表?

时间:2013-01-16 11:25:17

标签: php wordpress

是否可以使用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;

}

或者,如果有另一种方法可以做到,那么我就完全开放了。

2 个答案:

答案 0 :(得分:2)

如果您没有使用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++;
    }

?>

您可以检索所需的字段。或者您可以添加所有数据并附加自定义字段。

答案 1 :(得分: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.';
}
?>

Here is the full documentation and list of properties available