首页 > 解决方案 > WP_Query 按两个值排序

问题描述

我试图让 WP_Query 按两个不同的值排序,但我不知道如何做到这一点。我试图通过结束时间在一个查询中获取事件。每个事件中都有自定义的 ending_date_time 字段,日期时间为 YYYY-MM-DD H:i:s。我需要查询来获取值,所以第一个是最接近结束的事件等等,如果有已经结束的事件,它们会在那些尚未结束的事件之后发生。

使用 MySQL,我会做这样的事情:

SELECT * FROM events ORDER BY event_endtime < NOW(), event_endtime ASC

标签: wordpresscustom-wordpress-pages

解决方案


通过此查询,您可以获得现在和将来的事件。

$today = date( 'YYYY-MM-DD H:i:s' );
$args = array(
    'post_type' => 'events',
    'orderby'   => 'event_endtime',
     'order' => 'DESC',
    'meta_query' => array(
        array(
            'key' => 'event_endtime',
            'value' => $today,
            'compare' => '>=',
            'type' => 'DATE'
        )
    )
):
$query = new WP_Query( $args );

如果你想过去的事件你必须改变 'compare' => '<='


推荐阅读