WordPressでオートコンプリート機能を作成したいのですが。 username を検索できる場所から検索フィールドが必要です。私は以下のJQuery UIを使用しています。
<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>
私の問題は、この形式で ユーザー名 のリストを取得できないことです - array('John', 'Rogers', 'Paul', 'Amanda', 'Peter');
どうすればよいですか。
他の答えは正しいですが、 wp_list_pluck()
を使って少ないコードで同じことを達成することは可能です:
$users = get_users();
$user_names = wp_list_pluck( $users, 'display_name' );
このように使用されたwp_list_pluck()
は、ループする必要なしに、配列内のすべてのユーザーのdisplay_name
フィールドを取得します。
get_users
関数はユーザーオブジェクトの配列を与え、そこからユーザー名の配列を抽出することができます。このような:
$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_names
はログイン名を持つ配列です。もちろん、user_nicename
、last_name
、または wp_user
オブジェクトで利用可能なあらゆる情報を使用することもできます。
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;
}
そして、次のような配列になります。
Array
(
[0] => John Doe
[1] => Jane Doe
[2] => Baby Doe
)
管理者、注文名などを除外したいと思うでしょう。だから、 documentation を見てもっとget_users()
の引数を見つけてください。