在WP 4.0上按META_VALUE_Num DESC和META_Value ASC排序

时间:2014-10-20 作者:okiedokey

我已经创建了一个自定义的帖子类型,我想通过它来订购

  1. custom-field-1, 它是布尔值,因此其值为10, 在里面DESC 顺序(1到0)
  2. custom-field-2, 其中包含文本并应进行排序ASC (A到Z)
First Question:

WordPress 4.0中引入了一个更强大的ORDERBY参数。是否可以使用新的ORDERBY功能进行此操作?

If not, second Question:

最好的方法是什么?我怎样才能meta_query 按顺序排列帖子custom-field-1 按降序排列,然后按custom-field-2 按升序排列?

Edit:

或者可以选择使用WP_Query, 一个用于具有custom-field-1 value = \'1\' 还有一个给那些有价值的人0 ?

我知道“按多个自定义字段值排序”在这里已经讨论了很多,但我在搜索网站时没有找到类似的问题。

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

虽然新的orderby 参数在WP_Query, 它不支持多个orderby 对于多个meta_key\'s

我经历了几个场景,甚至深入研究了trac和make,并得出以下结论

制造。wordpress。组织机构A more powerful orderby in wordpress 4.0

  • trac ticket #17065

    meta_key 还有另一个字段,比如post date。我还没有试过这个。

    我真的认为您在这里有两个选择,而不需要创建两个查询。

    使用posts_orderby 按照@s\\u ha\\u dum在其回答中所述进行筛选here

    通过使用PHP排序usort. 这里的想法是按一对查询进行排序meta_key 然后获取返回的posts数组($posts),并按秒对其进行排序meta_key 在循环开始之前。您可以使用the_posts 过滤器(只需记住在完成后移除过滤器)或简单地取消设置$posts 在模板中,并在完成后使用重新排序的帖子数组进行设置

  • 结束

    相关推荐

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

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