尝试使用meta_compare 如《法典》中的建议:

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_merge坚持原始查询。因此,我无法完全弄清楚如何将建议的语法('&name = value')用于meta_compare和meta_value。无论如何,在我的代码中,meta_value似乎被视为字符串,而不是预期的整数。

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

  • 8500000
  • 600
  • 15000
  • 900
  • 750
  • 9000000

如果不是字符串问题,则可能是WordPress订购(DESC)这些自定义字段如下:

  1. 9000000
  2. 900
  3. 8500000
  4. 750
  5. 600
  6. 15000

我希望将它们订购(DESC)如下:

  1. 9000000
  2. 8500000
  3. 15000
  4. 900
  5. 750
  6. 600

我在这里做错了吗?

有帮助吗?

解决方案

看到这个问题,我在那里的答案 query_posts->使用meta_compare /其中元值较小或更大或平等…

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

许可以下: CC-BY-SA归因
scroll top