อย่างที่ฉันเข้าใจมันอาจเปลี่ยนไปในช่วงหลายปีที่ผ่านมาตอนนี้ไม่ใช่'wp_capabilities'
เลย ฉันดูที่ไฟล์ WP หลักวิธีที่พวกเขาทำตอนนี้และพบทางออกใหม่ให้กับสิ่งนี้ นี่คือรหัสที่ฉันใช้ตอนนี้:
global $wpdb;
$cap = get_user_meta( $wp_user_id, $wpdb->get_blog_prefix() . 'capabilities', true );
$cap
จากนั้นมาเป็นอาร์เรย์ที่เชื่อมโยงตัวอย่างเช่น:
{
"administrator": true
}
หรือ
{
"subscriber": true
}
ดังนั้นในกรณีของคุณคุณควรจะได้รับกุญแจของอาร์เรย์:
$caps_array = array_keys( $cap );
แล้วรับทุกอย่างจากมัน ฉันต้องการดูว่าผู้ใช้มีบทบาทผู้ดูแลระบบหรือไม่ดังนั้นฉันจึงตรวจสอบ:
if ( is_array( $cap ) && !empty( $cap['administrator'] ) ) { return true; }
ฉันมี ID ผู้ใช้ไม่ใช่WP_User
วัตถุทั้งหมดและฉันไม่ต้องการใช้โซลูชันใด ๆ ที่จะสร้างuser
วัตถุ ขณะที่ฉันตรวจสอบให้get_user_meta
ไปที่ db เพื่อตรวจสอบพารามิเตอร์ที่แน่นอนนี้ดังนั้นจึงควรเป็นเส้นทางที่เร็วและฉลาดที่สุด