Saya punya beberapa kode seperti ini:
$ query_args = array (); $ query_args ['fields'] = array ('ID', 'display_name'); $ query_args ['role'] = 'pelanggan'; $ users = get_users ($ query_args); foreach ($ pengguna sebagai $ pengguna) $ users_array [$ user-> ID] = $ user-> display_name;
Saya ingin mendapatkan lebih banyak peran dan juga memasukkan contributor
, author
dan beberapa peran khusus yang saya buat dengan plugin Role Scoper misalnya Manager
, dll. Adakah ide bagaimana saya bisa melakukan ini get_users
?
Terima kasih
Anda juga dapat melakukan ini melalui satu panggilan ke
get_users
atau menggunakan satuWP_User_Query
dengan memanfaatkanmeta_query
argumen:Ini
meta_query
ditarik dari bagaimanaWP_User_Query
menanganirole
parameter, jika Anda tertarik.sumber
Saya berhasil menyelesaikan ini dengan menggunakan fungsi ini:
Maka dalam tema saya, saya bisa melakukan ini:
sumber
Sejak
get_users()
mengembalikan array pengguna yang cocok dengan string kueri yang diberikan sebagai param. Jalankan sajaget_users()
kueri untuk setiap peran yang Anda inginkan secara terpisah dan gabungkan hasilnya. Anda kemudian dapat mengulang melalui$users
cara yang sama seperti jika tidak.sumber
$users = array_merge( get_users( array('role' => 'RoleOne' ,'fields' => 'ID') ), get_users( array('role' => 'RoleTwo' ,'fields' => 'ID') ));
, dan itu berhasil memperlakukan. Terima kasih!Masalah dengan menggunakan
array_merge
adalah Anda tidak dapat menggunakan pagination. Saya sangat suka solusi @Andy Adams, tetapi jika Anda mencari di banyak peran, menggunakan kueri metanya akan menghasilkan kueri yang sangat lambat (secara internal ia melakukan yang baruINNER JOIN
untuk setiap kueri meta).Solusi saya adalah menggunakan kueri meta ekspresi reguler:
Ini menghasilkan kueri yang terlihat seperti:
sumber
Anda bisa menggabungkan lebih banyak hasil permintaan pengguna. Katakanlah Anda ingin memasukkan keduanya
Author
danEditor
peran. Tentukan permintaan untuk setiap kasus kemudian gunakan array_merge untuk mengkonsolidasikan menjadi satu array.sumber
Semua parameter dari fungsi get_users adalah opsional. Jika Anda tidak menentukan apa pun, Anda akan mendapatkan larik yang berisi objek yang sesuai dengan masing-masing dan setiap pengguna blog saat ini, termasuk yang dengan peran khusus.
sumber
sumber