배열 형식으로 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');얻을 수 없다는 것입니다. 어떻게해야합니까?

답변:


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
그렇습니다. 방금 참조 한 다른 답변과 명확성과 일관성을 위해 분리했습니다. 필자는 아마도 내 코드에서 별도로 남겨 두었을지라도 함수를 인수로 사용하는 것을 좋아하지 않습니다.
Jacob Peattie

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_namewp_user

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.