Soweit ich weiß, hat es sich wahrscheinlich im Laufe der Jahre geändert, jetzt ist es nicht mehr so 'wp_capabilities'
. Ich habe mir die wichtigsten WP-Dateien angesehen und eine neue Lösung dafür gefunden. Hier ist der Code, den ich jetzt benutze:
global $wpdb;
$cap = get_user_meta( $wp_user_id, $wpdb->get_blog_prefix() . 'capabilities', true );
$cap
dann kommt als assoziatives Array zum Beispiel:
{
"administrator": true
}
oder
{
"subscriber": true
}
In Ihrem Fall sollten Sie also wahrscheinlich die Schlüssel des Arrays erhalten:
$caps_array = array_keys( $cap );
und dann hol alles daraus. Ich musste sehen, ob der Benutzer die Administratorrolle hat, also überprüfte ich:
if ( is_array( $cap ) && !empty( $cap['administrator'] ) ) { return true; }
Ich hatte eine Benutzer-ID, nicht das gesamte WP_User
Objekt, und ich wollte keine Lösung verwenden, die das user
Objekt erstellen würde . Wie ich überprüft habe, get_user_meta
geht es direkt zur Datenbank, um nach diesem genauen Parameter zu suchen. Dies sollte also die schnellste und ressourcenschonendste Route sein.