如何通过多个元键排序? [英] How to order by multiple meta keys?

查看:83
本文介绍了如何通过多个元键排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用自定义循环在页面上显示我的事件,我可以使用以下方法在事件开始日期前对其进行良好排序:

I’m using a custom loop to display my events on a page, I get it fine ordering by the event start date using the below:

$args = array( 
    'post_type' => 'event',
    'order' => 'ASC',
    'orderby' => 'meta_value',
    'meta_key' => '_event_start_date');
$loop = new WP_Query( $args );

但是meta_key选项仅允许一个值.如何使用两个值(_event_start_date_event_start_time)?

But the meta_key option only allows one value. How to use two values (_event_start_date and _event_start_time)?

推荐答案

这是WordPress在4.2中添加的支持:https://make.wordpress.org/core/2015/03/30/query-improvements-in-wp-4-2 -orderby-and-meta_query/

This is something that WordPress added support for in 4.2: https://make.wordpress.org/core/2015/03/30/query-improvements-in-wp-4-2-orderby-and-meta_query/

在您的情况下,您可能需要执行以下操作:

In your case you'll probably want to do something like this:

$args = array(
    'post_type'  => 'event',
    'meta_query' => array(
        'relation' => 'AND',
        'event_start_date_clause' => array(
            'key'     => '_event_start_date',
            'compare' => 'EXISTS',
        ),
        'event_start_time_clause' => array(
            'key'     => '_event_start_time',
            'compare' => 'EXISTS',
        ), 
    ),
    'orderby' => array(
        'event_start_date_clause' => 'ASC',
        'event_start_time_clause' => 'ASC',
    ),
);

$loop = new WP_Query( $args );

这篇关于如何通过多个元键排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆