如何使用另一个元查询对多个元字段进行排序

时间:2018-11-23 作者:Petri V.

我有一个自定义的post类型“events”,带有元字段“startdate”和“enddate”。存档查询已经使用元查询只显示即将发生或正在发生的事件,但除此之外,我需要按两个元字段排序。我不知道元查询应该是什么,所以它可以用于两种用途。还是我做错了什么?

这是查询的一部分,我需要替换简单的orderby。任何人都知道如何添加“。。。orderby startdate,enddate“到此?

$meta_query = array(
    \'relation\' => \'OR\',
    \'enddate\' => array (
        \'key\' => \'enddate\',
        \'value\' => date( \'Y-m-d\' ),
        \'compare\' => \'>=\'
    ),
    \'startdate\' => array (
        \'key\' => \'startdate\',
        \'value\' => date( \'Y-m-d\' ),
        \'compare\' => \'>=\',
    )
);
$query->set(\'meta_query\',$meta_query);
$query->set(\'orderby\', \'meta_value\');   
$query->set(\'meta_key\', \'startdate\');

1 个回复
SO网友:Milo

您已经在元查询中命名了子句,因此可以在orderby 参数:

$query->set(
    \'orderby\',
    array(
        \'enddate\' => \'DESC\',
        \'startdate\' => \'DESC\'
    )
);

结束

相关推荐

最小化对数据库的wp_Query调用

我有一个非常基本的问题,这个问题可以通过原始sql查询轻松完成,我们可以将想要输出的数据库列命名为 select id,name,date from tableA where id>\'100\' 但同样的事情Wp_Query 提供了大量与我们完全无关的垃圾数据。我们可以使用php 但问题是,它肯定会杀死数据库,因为它正在幕后进行大量调用。我们与var_dump 而且它是巨大的数据,99%对我们没有用处。我们只想列出id和name列,而不是像这样的列PING_STATUS,COM