是否可以使用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;
}
或者,如果有另一种方法可以做到,那么我就完全开放了。
答案 0 :(得分:2)
如果您没有使用wp_query
,则可以使用get_users
和get_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