我已经创建了一个自定义的帖子类型,我想通过它来订购
custom-field-1
, 它是布尔值,因此其值为1
或0
, 在里面DESC
顺序(1到0)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
?
我知道“按多个自定义字段值排序”在这里已经讨论了很多,但我在搜索网站时没有找到类似的问题。
最合适的回答,由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
在模板中,并在完成后使用重新排序的帖子数组进行设置