Cách nhận tên người dùng WordPress ở định dạng mảng


11

Tôi muốn tạo một chức năng Tự động hoàn thành trong WordPress. Tôi muốn một trường tìm kiếm từ đó tên người dùng có thể được tìm kiếm. Tôi đang sử dụng UI JQuery sau đây.

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

Vấn đề của tôi là tôi không thể có được danh sách Tên người dùng ở định dạng này - array('John', 'Rogers', 'Paul', 'Amanda', 'Peter');Làm thế nào để tôi có được điều đó?

Câu trả lời:


16

Các câu trả lời khác là đúng, nhưng có thể đạt được điều tương tự với ít mã hơn bằng cách sử dụng wp_list_pluck():

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

wp_list_pluck()được sử dụng theo cách đó sẽ có được display_nametrường của tất cả người dùng trong một mảng mà không cần phải thực hiện một vòng lặp.


2
+1. Ngoài ra, nếu ít mã hơn là mục tiêu, thì tại sao không : $user_names = wp_list_pluck( get_users(), 'display_name' );;)
Fayaz

1
Vâng, nó sẽ làm việc. Tôi chỉ tách chúng ra cho rõ ràng và nhất quán với các câu trả lời khác mà tôi đang tham khảo. Mặc dù tôi có thể để chúng riêng biệt trong mã riêng của mình, tôi không thích sử dụng các hàm làm đối số.
Jacob Peattie

3

Nhìn vào get_users()chức năng.

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

Và bạn sẽ nhận được mảng tương tự như sau:

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

Tôi khá chắc chắn rằng bạn sẽ muốn loại trừ quản trị viên, tên đơn đặt hàng, v.v. Vì vậy, nhìn vào tài liệu để tìm hiểu thêm các get_users()đối số.


3

Các get_userschức năng sẽ cung cấp cho bạn một loạt các đối tượng người dùng, từ đó bạn có thể trích xuất một loạt các tên người dùng. Như thế này:

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

Bây giờ $user_nameslà một mảng với tên đăng nhập. Bạn có thể, tắt tất nhiên, cũng sử dụng user_nicename, last_namehoặc bất cứ điều gì thông tin có sẵn trong các wp_userđối tượng

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.