J'aimerais utiliser get_users()
pour renvoyer tous les utilisateurs qui ont une méta_key particulière, mais je ne veux pas spécifier quelle doit être la valeur, car elle changera pour chaque utilisateur. La valeur est une chaîne json. Est-ce possible?
Vous pouvez utiliser uniquement l'argument meta_key
, le résultat sera similaire à l'utilisation de l'instruction EXISTS
sql.
<?php
$users = get_users(array(
'meta_key' => 'your_meta_key',
));
Vous pouvez également utiliser une chaîne vide pour meta_value
(valeur par défaut) et >
pour meta_compare
. Le résultat est le même (probablement parce que meta_value
est ignoré s'il est vide!).
<?php
$users = get_users(array(
'meta_key' => 'your_meta_key',
'meta_value' => '',
'meta_compare' => '>',
));
La première méthode fonctionne également avec WP_Query
et meta_query
. Exemple d'un de mes plugins:
$links = get_posts(array(
'post_type' => self::POST_TYPE,
'numberposts' => apply_filters('seoal_number_links', -1),
'meta_query' => array(
'relation' => 'AND',
array(
'key' => self::get_key("type_{$post->post_type}"),
'value' => 'on',
'compare' => '='
),
array(
'key' => self::get_key('url'),
'compare' => 'EXISTS' // doesn't do anything, just a reminder
),
array(
'key' => self::get_key('keywords'),
'compare' => 'EXISTS' // doesn't do anything, just a reminder
)
),
'suppress_filters' => false,
));