我想通过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代码不能正常工作怎么办呢?
答案 0 :(得分:1)
虽然新orderby
参数在WP_Query
中很好,但它不支持多个orderby
的多个meta_key
。
我已经完成了几个场景,甚至开始挖掘trac并制作并提出以下内容
make.wordpress.org A more powerful orderby in wordpress 4.0
没有回答关于这个问题的任何问题。从这两个链接看来,meta_key
和另一个字段(如发布日期)排序存在问题。我还没试过这个。
我认为你在这里有两个选择,而不会创建两个查询。
在@ s_ha_dum的回答here
posts_orderby
过滤器进行黑客攻击
通过使用usort
的PHP排序。这里的想法是按一个meta_key
对查询进行排序,然后获取返回的posts数组($ posts),并在循环开始之前按第二个meta_key
对它们进行排序。您可以使用the_posts
过滤器(只需记住在完成后删除过滤器),或者只是在模板中取消设置$posts
,并在完成后使用重新排序的帖子数组进行设置