Orderby自定义元返回随机顺序

时间:2014-09-22 作者:Imperative Ideas

[由Roberthue回答-我是按meta\\u value排序,而不是按meta\\u value\\u num排序]

我创建了一个WP\\U查询,它执行以下操作:

通过元查询获取待售业务的列表,使用get\\u query\\u var从URL获取待售业务的订单。使用查询var中的排序顺序检查元查询,以确保销售项目处于活动状态。在大多数情况下,它是有效的。元查询正确区分了活动和非活动帖子,排序会上升和下降,只有一个问题。。。数据按降序排列如下:

    99999
  • 749000
  • 350000
  • 300000
  • 2700000
  • 249000
  • 2000000
  • 1536000
  • 145000
  • Welp,这是不对的。。。

    以下是我的查询参数:

    $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
    $listing_args = array(
        \'post_status\' => \'publish\',
        \'post_type\' => \'business\',
        \'posts_per_page\'         => \'12\',
        \'meta_key\' => get_query_var(\'orderby\'),
        \'orderby\' => \'meta_value\',
        \'order\' => get_query_var(\'order\'),
        \'paged\' => $paged,
        \'meta_query\' => array( // Only grab active listings
            array(
                \'key\' => \'property_active\',
                \'value\' => 1,
                \'compare\' => \'=\'
            ),
        ),
    );
    
    // The Query
    $businesses = new WP_Query( $listing_args );
    
    据我所知,这也没有错。字段本身由ACF生成并委托“数字”。

    我完全没有主意。

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

我还在这里为其他有同样问题的人添加了这个。

如果元值是数字,则应使用orderbymeta_value_num 而不是meta_value.

As mentioned in codex.

  • meta_value - 请注意meta_key=keyname 查询中也必须存在。还请注意,排序将按字母顺序进行,这对于字符串(即单词)来说是很好的,但对于数字(例如1、3、34、4、56、6等,而不是您自然期望的1、3、4、6、34、56等)来说可能是意外的。使用meta_value_num 而不是数值。

  • meta_value_num - 按数值元值排序(2.8版提供)。还请注意meta_key=keyname 查询中也必须存在。此值允许进行数字排序,如中所述meta_value.

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post