۵ پویا فرشیدنیا
گرفتن نقش کاربر به هنگام تنظیم fields
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۰۶ آذر ۱۴۰۱

سلام و خسته نباشید. من زمانی که کلید fields رو توی کوئری کاستم تنظیم نمیکنم میتونم نقش کاربر رو توسط کلید roles بگیرم اما یک جایی من نیاز دارم فرضا فقط نام کاربری و نقش کاربری رو توی جدول کاربران نمایش بدم و به فیلد‌های دیگه نیاز ندارم وقتی fields رو تنظیم میکنم که فقط user_login رو به من بده دیکه از طریق کلید roles نمیتونم نقش کاربر رو بگیرم و null بر میگردونه. سرچ کردم که آیا میشه مجزا و یا با آیدی کاربر، نقش کاربری رو گرفت که به نتیجه خاصی نرسیدم . میخواستم بدونم راهی هست که در حین حال که کوئریم رو سنگین نکنم ، بتونم به نقش کاربری هر کاربر دسترسی داشته باشم؟؟

با سلام

یا من به درستی متوجه سوالتان نشدم یا خودتان پاسخ خودتان را به نحوی ارسال کرده اید!

در بخش اول سوالتان مطرح شده است وقتی fields تنظیم نمیشود » خب در این حالت تمامی مشخصات کاربر از جمله role هم بازگردانده میشود.

ولی در ادامه مطرح کردید که کوئری کاستوم میزنید که فقط نام کاربری را دریافت کنید، خب وقتی شما با علم و اختیار خودتان به کوئری وردپرس می‌گوید که تنها نام کاربری را نیاز دارید وردپرس نباید هم نقش کاربر را برگرداند!! اگر به نقش کاربری هم نیاز دارید انرا نیز از طریق کوئری که می‌نویسید دریافت کنید.

اما در نهایت اگر میخواهید که کوئری را سنگین نکنید هر فیلدی که قصد گرفتن انرا دارید دریافت کنید از جمله نام کاربری - نام - نقش و .. و سنگین نمیشود

اگر هم نیاز دارید خارج از کوئری وردپرس نقش را دریافت کنید این کار قابل انجام هست، به طور مثال از طریق کد زیر و راه‌های مختلف دیگر:

$user = wp_get_current_user();
$role = array_key_first($user->roles);


موفق باشید

بهنام مرادی ۰۷ آذر ۱۴۰۱، ۱۲:۵۰

منظور من این بود که role‌ها جزو فیلدها نیستند و نمیشه با ست کردن fields توی آرگومان کوئری نقش کاربری رو گرفت درسته؟ بهتره اینطور سوالمو بپرسم که فرضا اگر بخوام فقط نام کاربری و نقش کاربری رو بگیرم چطور باید اینکارو انجام بدم؟ متغیر $args رو چطور باید تعریف کنم؟

پویا فرشیدنیا ۰۸ آذر ۱۴۰۱، ۰۸:۳۹

سلام نام کاربری و role یه یوزر خاص رو می‌خواید یا نه می‌خواید نام کاربری و role تمام یوزها رو لیست کنید؟

کدهاتون رو هم ارسال کنید کخ گفتین نمی‌تونید role رو بگیرید

وحید صالحی ۱۱ آذر ۱۴۰۱، ۰۸:۰۱

سلام. استاد برای تمامی یوزرها رو میخوام بگیرم و نمایش بدم.

پویا فرشیدنیا ۱۱ آذر ۱۴۰۱، ۰۸:۱۶

در بخش کار با USER API این موارد رو بهش اشاره کردیم و مثال زدیم با تایع get_users یا کلاس WP_User_Query می‌تونید انجام بدید

مثال :لیست کاربران به همراه نقش هاشون

$users = get_users();
if ($users) :
    foreach ($users as $user) :?>
       echo $user->display_name  :  echo $user->roles[0]; 
   endforeach; ?>
endif; ?>
بهترین پاسخ
وحید صالحی ۱۴ آذر ۱۴۰۱، ۱۸:۵۰