Как получить имя пользователя WordPress в формате Array


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');Как я могу получить это?

Ответы:


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' );
:;

1
Да, это будет работать. Я просто разделил их для ясности и последовательности с другими ответами, на которые я ссылался. Хотя я бы, вероятно, оставил их отдельно в своем коде, я не люблю использовать функции в качестве аргументов.
Джейкоб Питти

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_nicename, last_nameили то , что информация доступна в wp_userобъекте

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.