So erhalten Sie den WordPress-Benutzernamen im Array-Format

11

Ich möchte eine Autocomplete-Funktion in WordPress erstellen. Ich möchte ein Suchfeld, in dem der Benutzername gesucht werden kann. Ich verwende die folgende JQuery-Benutzeroberfläche.

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

Mein Problem ist, dass ich die Liste der Benutzernamen in diesem Format nicht abrufen kann.array('John', 'Rogers', 'Paul', 'Amanda', 'Peter'); Wie bekomme ich das?

Minesh
quelle

Antworten:

16

Die anderen Antworten sind richtig, aber es ist möglich, dasselbe mit weniger Code zu erreichen, indem man wp_list_pluck():

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

wp_list_pluck()Auf diese Weise wird das display_nameFeld aller Benutzer in einem Array abgerufen, ohne dass eine Schleife ausgeführt werden muss.

Jacob Peattie
quelle
2
+1. Auch wenn weniger Code das Ziel ist, warum dann nicht : $user_names = wp_list_pluck( get_users(), 'display_name' );;)
Fayaz
1
Ja das würde funktionieren. Ich habe sie nur aus Gründen der Klarheit und Übereinstimmung mit den anderen Antworten, auf die ich mich bezog, getrennt. Obwohl ich sie wahrscheinlich in meinem eigenen Code getrennt lassen würde, verwende ich Funktionen nicht gern als Argumente.
Jacob Peattie
3

Schauen Sie sich die get_users()Funktion an.

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

Und Sie erhalten das Array ähnlich wie folgt:

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

Ich bin mir ziemlich sicher, dass Sie Administratoren, Bestellnamen usw. ausschließen möchten. Schauen Sie sich also die Dokumentation an, um mehr get_users()Argumente herauszufinden .

Max Yudin
quelle
3

Die get_usersFunktion gibt Ihnen ein Array von Benutzerobjekten, aus denen Sie ein Array von Benutzernamen extrahieren können. So was:

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

Jetzt $user_namesist ein Array mit Anmeldenamen. Sie können vom Kurs abgekommen, verwenden Sie auch user_nicename, last_nameoder was auch immer Informationen sind in dem zur Verfügung stehenden wp_userObjekt

cjbj
quelle