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?

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.


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 .


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.