Essayer d'utiliser meta_compare comme suggéré dans le codex :
query_posts('meta_key=miles&meta_compare=<=&meta_value=22');
Voici mon code:
global $wp_query;
query_posts(
array_merge(
array(
'category__and' => $mycatsarray,
'meta_key' => 'price',
'meta_compare' => '>=',
'meta_value' => 8500000,
'orderby' => meta_value_num,
'order'=>DESC
),
$wp_query->query
)
)
J'utilise array_merge pour conserver la requête d'origine. Je ne pouvais donc pas comprendre comment utiliser la syntaxe suggérée ('& name = valeur') pour meta_compare et meta_value. Quoi qu'il en soit, dans mon code, la meta_value semble être traitée comme une chaîne et non comme un entier comme prévu.
Voici un exemple de champs personnalisés de prix typiques de mes publications personnalisées:
Si ce n'est pas un problème de chaîne, il se peut que WordPress commande (DESC) ces champs personnalisés comme suit:
Je voudrais qu'ils soient commandés (DESC) comme suit:
Est-ce que je fais quelque chose de mal ici?
Voir cette question et ma réponse là query_posts -> using meta_compare/où meta value est plus petit ou plus grand ou est égal à…
Fondamentalement, aux fins de méta-comparaison, la valeur est toujours traitée comme une chaîne, car elle est transmise en tant que telle à la méthode $wpdb->prepare()
.