META_COMPARE似乎将值视为字符串,而不是预期的整数

时间:2010-11-07 作者:jnthnclrk

尝试使用meta\\u比较as suggested in the codex:

query_posts(\'meta_key=miles&meta_compare=<=&meta_value=22\');
这是我的代码:

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
)
);

我正在使用array\\u merge来持久化原始查询。因此,我不太清楚如何使用建议的语法(“&;name=value”)进行meta\\u比较和meta\\u值。无论如何,在我的代码中,meta\\u值似乎被视为字符串,而不是预期的整数。

以下是我的自定义帖子中一些典型的价格自定义字段的示例:

如果不是字符串问题,可能是WordPress正在对这些自定义字段进行排序(描述),如下所示:

我希望订购(说明)如下:

我在这里做错什么了吗?

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

看看这个问题和我的答案query_posts ->using meta_compare / where meta value is smaller or greater or equals…

基本上,出于元比较的目的,值始终被视为字符串,因为它是这样传递给$wpdb->prepare() 方法

结束

相关推荐