通过meta_value_num获取带有两个元键的帖子

时间:2014-10-22 05:29:52

标签: php wordpress

我想通过meta_value_num和meta键按get_post订单发帖,我试过这段代码:

get_posts(
    array(  'post_type' => 'posts',
        'order' => 'ASC',
        'orderby' => 'meta_value_num',
        'meta_query' => array(
            array('key' => 'class'),
            array('key' => 'chair')
         )
    )
);

我希望按照课程编号和主席编号对帖子进行排序。 但是htis代码不能正常工作怎么办呢?

1 个答案:

答案 0 :(得分:1)

虽然新orderby参数在WP_Query中很好,但它不支持多个orderby的多个meta_key

我已经完成了几个场景,甚至开始挖掘trac并制作并提出以下内容

没有回答关于这个问题的任何问题。从这两个链接看来,meta_key和另一个字段(如发布日期)排序存在问题。我还没试过这个。

我认为你在这里有两个选择,而不会创建两个查询。

  • 在@ s_ha_dum的回答here

  • 中使用posts_orderby过滤器进行黑客攻击
  • 通过使用usort的PHP排序。这里的想法是按一个meta_key对查询进行排序,然后获取返回的posts数组($ posts),并在循环开始之前按第二个meta_key对它们进行排序。您可以使用the_posts过滤器(只需记住在完成后删除过滤器),或者只是在模板中取消设置$posts,并在完成后使用重新排序的帖子数组进行设置