Saya perlu mendapatkan peran yang dikaitkan dengan pengguna - bukan "pengguna yang saat ini masuk".
Saya menggunakan Buddypress (bukan yang seharusnya penting dengan sifat pertanyaan ini) dan saya berada di bp_members()
loop.
Bagaimana saya bisa mengambil peran pengguna yang saya laporkan dalam loop pada waktu tertentu?
Terima kasih.
user-roles
frank13
sumber
sumber
Jika
bp_members
mengembalikan arrayWP_User
objek, masing-masing harus memiliki propertiroles
yang berisi array peran pengguna.Jika tidak, Anda dapat menggunakan
get_user_meta
untuk kunciwp_capabilities
, yang akan mengembalikan arrayrole => capability
pasangan:sumber
$user->ID
peran itu. Hanya satu peran karena tidak ada pengguna di sistem kami yang ditugaskan lebih dari 1 peran.$roles[0]
, dilakukan.Seperti yang saya mengerti, itu mungkin berubah selama bertahun-tahun, sekarang tidak
'wp_capabilities'
. Saya melihat file WP inti, bagaimana mereka melakukannya sekarang, dan menemukan solusi baru untuk ini. Berikut kode yang saya gunakan sekarang:$cap
kemudian muncul sebagai array asosiatif, misalnya:atau
Jadi dalam kasus Anda, Anda mungkin harus mendapatkan kunci-kunci array:
dan kemudian mendapatkan semuanya dari itu. Saya perlu melihat apakah pengguna memiliki peran administrator, jadi saya memeriksa:
Saya memiliki ID pengguna, bukan seluruh
WP_User
objek, dan saya tidak ingin menggunakan solusi apa pun yang akan membuatuser
objek. Ketika saya memeriksa,get_user_meta
langsung ke db untuk memeriksa parameter yang tepat ini, jadi ini harus menjadi rute tercepat dan sumber daya.sumber