WordPress:使用wp_query按多个元键排序

时间:2016-06-22 09:35:23

标签: wordpress sorting custom-fields date-sorting

我在一个活动网站上工作,所有活动的日历按两个自定义字段排序

  1. date_start - 活动当天。数据就像这样存储 20160622今天> 22/06/2016

  2. time_start - 事件在这一天开始的时间。数据存储供德国使用。 上午10点= 10点/下午3点= 15点/ 8点= 20点

  3. 仅按date_start对事件进行排序效果很好。

    $query = new WP_Query( array( 
                'post_type' => 'veranstaltungen',
                'post_status' => 'publish',
                'cat' => '1,2,3,4,5',
                'posts_per_page' => -1,
                'meta_key' => 'date_start',
                'orderby'  => array( 'meta_value_num' => 'ASC'),
                'order' => 'DESC'   
            ));
    

    现在我正在寻找一种解决方案,也可以使用time_start的customfield。 当活动在下午3点(15:00)开始时,不应在晚上8点(20:00)之后显示。

    在我的情况下,正确使用'meta_query'按日期和时间对自定义的内容进行排序是什么?

1 个答案:

答案 0 :(得分:0)

我认为您需要使用meta_query。尝试做类似下面的事情。

$query = new WP_Query( array( 
    'post_type' => 'veranstaltungen',
    'post_status' => 'publish',
    'cat' => '1,2,3,4,5',
    'posts_per_page' => -1,
    'meta_query'    => array(
        array(
                'key'     => 'date_start',
                'orderby' => 'meta_value_num',
                'order' => ASC,
            ),
            array(
                'key'     => 'time_start',
                'orderby' => 'meta_value',
                'order' => DESC,
            ),
    ),
));