Cara mendapatkan Nama Pengguna WordPress dalam format Array

11

Saya ingin membuat fungsi Autocomplete di WordPress. Saya ingin bidang pencarian dari mana nama pengguna dapat dicari. Saya menggunakan UI JQuery berikut.

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

Masalah saya adalah saya tidak bisa mendapatkan daftar Nama Pengguna dalam format ini - array('John', 'Rogers', 'Paul', 'Amanda', 'Peter');Bagaimana saya mendapatkannya?

Minesh
sumber

Jawaban:

16

Jawaban lainnya benar, tetapi dimungkinkan untuk mencapai hal yang sama dengan lebih sedikit kode menggunakan wp_list_pluck():

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

wp_list_pluck()digunakan dengan cara itu akan mendapatkan display_namebidang semua pengguna dalam array tanpa perlu melakukan loop.

Jacob Peattie
sumber
2
+1. Juga, jika lebih sedikit kode adalah target, maka mengapa tidak $user_names = wp_list_pluck( get_users(), 'display_name' );
:;
1
Ya itu akan berhasil. Saya hanya memisahkan mereka untuk kejelasan dan konsistensi dengan jawaban lain yang saya rujuk. Meskipun saya mungkin akan membiarkan mereka terpisah dalam kode saya sendiri, saya tidak suka menggunakan fungsi sebagai argumen.
Jacob Peattie
3

Lihatlah get_users()fungsinya.

<?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;
}

Dan Anda akan mendapatkan array yang mirip dengan yang berikut:

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

Saya cukup yakin Anda ingin mengecualikan admin, memesan nama, dan sebagainya. Jadi, lihat dokumentasi untuk mencari tahu lebih banyak get_users()argumen.

Max Yudin
sumber
3

The get_usersFungsi akan memberikan sebuah array dari objek pengguna, dari mana Anda dapat mengekstrak array nama pengguna. Seperti ini:

$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;
}

Sekarang $user_namesadalah array dengan nama login. Anda dapat, tentu saja, juga menggunakan user_nicename, last_name, atau info apa pun yang tersedia di wp_userobjek

cjbj
sumber