Comment obtenir le nom d'utilisateur WordPress au format tableau

11

Je veux créer une fonction de saisie semi-automatique dans WordPress. Je veux un champ de recherche à partir duquel le nom d'utilisateur peut être recherché. J'utilise l'interface utilisateur JQuery suivante.

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

Mon problème est que je ne parviens pas à obtenir la liste des noms d' utilisateur dans ce format - array('John', 'Rogers', 'Paul', 'Amanda', 'Peter');Comment puis-je l'obtenir?

Minesh
la source

Réponses:

16

Les autres réponses sont correctes, mais il est possible de réaliser la même chose avec moins de code en utilisant wp_list_pluck():

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

wp_list_pluck()utilisé de cette façon obtiendra le display_namechamp de tous les utilisateurs dans un tableau sans avoir besoin de faire une boucle.

Jacob Peattie
la source
2
+1. Aussi, si moins de code est la cible, alors pourquoi pas $user_names = wp_list_pluck( get_users(), 'display_name' );
:;
1
Oui, ça marcherait. Je viens de les séparer pour plus de clarté et de cohérence avec les autres réponses auxquelles je faisais référence. Bien que je les laisse probablement séparés dans mon propre code, je n'aime pas utiliser les fonctions comme arguments.
Jacob Peattie
3

Regardez la get_users()fonction.

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

Et vous obtiendrez un tableau similaire à celui-ci:

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

Je suis sûr que vous voudrez exclure les administrateurs, les noms de commande, etc. Alors, regardez la documentation pour découvrir plus d' get_users()arguments.

Max Yudin
la source
3

La get_usersfonction vous donnera un tableau d'objets utilisateur, à partir duquel vous pourrez extraire un tableau de noms d'utilisateurs. Comme ça:

$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_namesEst maintenant un tableau avec des noms de connexion. Vous pouvez, bien sûr, utiliser aussi user_nicename, last_nameou tout information est disponible dans l' wp_userobjet

cjbj
la source