WordPress Kullanıcı Adını Dizi biçiminde alma


11

WordPress'te Otomatik Tamamlama işlevi oluşturmak istiyorum. Kullanıcı adının aranabileceği bir arama alanı istiyorum . Aşağıdaki JQuery UI kullanıyorum.

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

Benim sorunum listesini almak mümkün değilim ki kullanıcı adları - bu biçimde array('John', 'Rogers', 'Paul', 'Amanda', 'Peter');Bunu nasıl alabilirim?

Yanıtlar:


16

Diğer cevaplar doğrudur, ancak aynı şeyi daha az kod kullanarak elde etmek mümkündür wp_list_pluck():

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

wp_list_pluck()Bu şekilde kullanıldığında, display_namebir dizideki tüm kullanıcıların alanını döngü yapmadan alırsınız .


2
+1. Ayrıca, daha az kod hedef ise, neden olmasın $user_names = wp_list_pluck( get_users(), 'display_name' );:;)
Fayaz

1
Evet bu işe yarar. Onları atıfta bulunduğum diğer cevaplarla netlik ve tutarlılık için ayırdım. Muhtemelen onları kendi kodumda ayrı bırakacak olsam da, fonksiyonları argüman olarak kullanmaktan hoşlanmıyorum.
Jacob Peattie

3

İşleve bakın 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;
}

Ve diziyi aşağıdakine benzer olarak alacaksınız:

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

Yöneticileri, sipariş adlarını vb. Hariç tutmak isteyeceğinizden eminim. Bu nedenle, daha fazla argüman bulmak için belgelere bakın get_users().


3

get_usersFonksiyon size kullanıcı adlarının dizisini ayıklayabileceğimiz kullanıcı nesneleri dizisi, verecektir. Bunun gibi:

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

Şimdi $user_namesgiriş isimleri olan bir dizi. Elbette kapalı, ayrıca kullanabilir user_nicename, last_nameya da her ne bilgi mevcuttur wp_usernesne

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.