Jusqu'à présent, j'ai essayé ces trois options et les trois ne fonctionnent pas.
$options = array(
'meta_key' => 'first_name',
'meta_value' => '',
'meta_compare' => '=',
);
$users = get_users( $options );
$options = array(
'meta_key' => 'first_name',
'meta_value' => null,
'meta_compare' => '=',
);
$users = get_users( $options );
$options = array(
'meta_query' => array(
array(
'key' => 'first_name',
'compare' => 'NOT EXISTS',
),
)
);
$users = get_users( $options );
Il semble que vous cherchiez les méta-clés first_name
avec les méta-valeurs empty string:
$options = array(
'meta_query' => array(
array(
'key' => 'first_name',
'value' => '',
'compare' => '=',
),
)
);
$users = get_users( $options );
qui génère ce type de requête SQL:
SELECT wp_users.*
FROM wp_users
INNER JOIN wp_usermeta ON ( wp_users.ID = wp_usermeta.user_id )
WHERE
1=1 AND ( ( wp_usermeta.meta_key = 'first_name' AND wp_usermeta.meta_value = '' ) )
ORDER BY user_login ASC
Notez que
$options = array(
'meta_key' => 'first_name',
'meta_value' => '',
'meta_compare' => '=',
);
$users = get_users( $options );
génère ce type de requête SQL:
SELECT wp_users.*
FROM wp_users
INNER JOIN wp_usermeta ON ( wp_users.ID = wp_usermeta.user_id )
WHERE 1=1 AND ( wp_usermeta.meta_key = 'first_name' )
ORDER BY user_login ASC ;
Utilisé sous le code. il retourne toutes les données qui n'ont pas de clé prénom dans la base de données ou qui ont un prénom vide
$args = array(
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'first_name',
'value' => '',
'compare' => '=',
),
array(
'key' => 'first_name',
'value' => '',
'compare' => 'NOT EXISTS',
),
)
);
$users = get_users( $args );
var_dump($users);exit;