Si je comprends bien, cela a probablement changé au fil des ans, maintenant ce n'est pas le cas 'wp_capabilities'
. J'ai regardé les fichiers WP principaux, comment ils le font maintenant, et j'ai trouvé une nouvelle solution à cela. Voici le code que j'utilise maintenant:
global $wpdb;
$cap = get_user_meta( $wp_user_id, $wpdb->get_blog_prefix() . 'capabilities', true );
$cap
vient ensuite comme un tableau associatif, par exemple:
{
"administrator": true
}
ou
{
"subscriber": true
}
Donc, dans votre cas, vous devriez probablement récupérer les clés du tableau:
$caps_array = array_keys( $cap );
et puis tout en tirer. J'avais besoin de voir si l'utilisateur avait le rôle d'administrateur, j'ai donc vérifié:
if ( is_array( $cap ) && !empty( $cap['administrator'] ) ) { return true; }
J'avais un ID utilisateur, pas tout l' WP_User
objet, et je ne voulais pas utiliser de solution qui créerait l' user
objet. Comme je l'ai vérifié, get_user_meta
va directement à la base de données pour vérifier ce paramètre exact, donc cela devrait être l'itinéraire le plus rapide et le plus efficace en termes de ressources.