web-dev-qa-db-fra.com

Passer utilisateur meta_key et meta_value (valeurs sous forme de tableau)

Je veux passer l'utilisateur meta_key à meta_value, mais le tableau meta_value ressemble à ceci:

$user_biodata = array(
    'register_facebook_id' => 1311064406686333,
);

Je veux vérifier si l'utilisateur est déjà enregistré via cette fonction;

$wp_users = get_users(array(
    'number'       => 1,
    'count_total'  => false,
    'fields'       => 'id',

    'meta_query' => array(
        array(
            'meta_key' => 'user_biodata',
            'meta_value' => array( 'register_facebook_id' => 1311064406686333 ),
        )
    ),
));

Mais le résultat est toujours 1 même lorsque la valeur n'existe pas, comment puis-je résoudre ce problème?

1
Opsional

Ce que vous faites n’est pas un moyen valable de récupérer et de vérifier des données de sérialisation à partir du WP. Vous pouvez insérer un tableau en tant que méta utilisateur, mais ce tableau en arrière-plan est transformé pour sérialiser une chaîne que MySql peut gérer.

Il existe des options de recherche avec l'opérateur LIKE, mais je n'approuve pas cette utilisation, car elle peut entraîner des résultats inattendus.

$args = array(
'number'       => 1,
'count_total'  => false,
'fields'       => 'ID',

'meta_query' => array(
        array(
            'key' => 'user_biodata',
            'value' => 'yourValue',
            'compare' => 'LIKE',
        ),

    ),
);

$users = get_users($args);
1
Drupalizeme