วิธีรับชื่อผู้ใช้ 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' );;)
Fayaz

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_nameหรือข้อมูลอะไรก็ตามที่มีอยู่ในwp_userวัตถุ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.