Come ottenere il nome utente di WordPress in formato array


11

Voglio creare una funzione di completamento automatico in WordPress. Voglio un campo di ricerca da cui è possibile cercare il nome utente . Sto usando la seguente interfaccia utente di JQuery.

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

Il mio problema è che non riesco a ottenere l'elenco di nomi utente in questo formato. array('John', 'Rogers', 'Paul', 'Amanda', 'Peter');Come posso ottenerlo?

Risposte:


16

Le altre risposte sono corrette, ma è possibile ottenere la stessa cosa con meno codice usando wp_list_pluck():

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

wp_list_pluck()usato in questo modo otterrà il display_namecampo di tutti gli utenti in un array senza dover fare un ciclo.


2
+1. Inoltre, se l'obiettivo è meno codice, allora perché no $user_names = wp_list_pluck( get_users(), 'display_name' );
:;

1
Sì, funzionerebbe. Li ho separati per chiarezza e coerenza con le altre risposte a cui mi riferivo. Anche se probabilmente li lascerei separati nel mio codice, non mi piace usare le funzioni come argomenti.
Jacob Peattie,

3

Guarda la get_users()funzione.

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

E otterrai l'array simile al seguente:

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

Sono abbastanza sicuro che vorrai escludere gli amministratori, i nomi degli ordini e così via. Quindi, guarda la documentazione per scoprire altri get_users()argomenti.


3

La get_usersfunzione fornisce una matrice di oggetti utente, da cui è possibile estrarre una matrice di nomi utente. Come questo:

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

Ora $user_namesè un array con nomi di accesso. È possibile, fuori rotta, utilizzare anche user_nicename, last_nameo qualunque informazioni è disponibile in wp_useroggetto

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.