Як отримати ім'я користувача WordPress у форматі масиву


11

Я хочу створити функцію автозаповнення в WordPress. Я хочу поле пошуку, з якого можна шукати ім'я користувача . Я використовую наступний інтерфейс JQuery.

<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.