如何以数组格式获取WordPress用户名


11

我想在WordPress中创建自动完成功能。我想要一个可以在其中搜索用户名的搜索字段。我正在使用以下JQuery UI。

<label>Users</label>

<input type="text" name="user_name" id="user-name" />

<?php

$get_arr_user = array('John', 'Rogers', 'Paul', 'Amanda', 'Peter');

?>

<script>

jQuery(document).ready(function($) {                                
var availableTags = <?php echo json_encode($get_arr_user); ?>;
$( "#user-name" ).autocomplete({
source: availableTags
});
});

</script>

我的问题是我无法以这种格式获取用户名列表- array('John', 'Rogers', 'Paul', 'Amanda', 'Peter');如何获取?

Answers:


16

其他答案是正确的,但是可以使用更少的代码来实现相同的目的wp_list_pluck()

$users = get_users();
$user_names = wp_list_pluck( $users, 'display_name' );

wp_list_pluck()使用这种方式将display_name无需循环即可获取数组中所有用户的字段。


2
+1。另外,如果目标代码较少,那么为什么不这样做:$user_names = wp_list_pluck( get_users(), 'display_name' );;)
Fayaz

1
是的,那行得通。我只是为了清楚和与我所引用的其他答案一致而将它们分开。尽管我可能会在我自己的代码中将它们分开,但是我不喜欢将函数用作参数。
Jacob Peattie '18年

3

get_users()功能。

<?php

$users = get_users();

foreach( $users as $user ) {
    // get user names from the object and add them to the array
    $get_arr_user[] = $user->display_name;
}

您将获得类似于以下内容的数组:

Array
(
    [0] => John Doe
    [1] => Jane Doe
    [2] => Baby Doe
)

我敢肯定,您会希望排除管理员,订单名称等。因此,请查看文档以了解更多get_users()参数。


3

get_users函数将为您提供用户对象数组,您可以从中提取用户名数组。像这样:

$args = array(); // define in case you want not all users but a selection
$users = get_users( $args );
$user_names = array();
foreach ( $users as $user ) {
    $user_names[] = $user->user_login;
}

现在$user_names是一个具有登录名的数组。您可以关闭当然,也可以使用user_nicenamelast_name或任何信息的提供wp_user对象

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.