如何通过多个元键订购?

use*_*853 19 sorting wordpress custom-post-type meta-key

我正在使用自定义循环在页面上显示我的事件,我按照下面的事件开始日期顺序排序:

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

但meta_key选项只允许一个值.如何使用两个值(_event_start_date和_event_start_time)?

Wes*_*rly 13

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

在你的情况下,你可能想要做这样的事情:

$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 );
Run Code Online (Sandbox Code Playgroud)


bra*_*ilo -2

从WP_Query 文档中,使用meta_query并填充元键/值数组:

$args = array(
    'post_type' => 'product',
    'meta_query' => array(
        array(
            'key' => 'color',
            'value' => 'blue',
            'compare' => 'NOT LIKE'
        ),
        array(
            'key' => 'price',
            'value' => array( 20, 100 ),
            'type' => 'numeric',
            'compare' => 'BETWEEN'
        )
    )
);
$query = new WP_Query( $args );
Run Code Online (Sandbox Code Playgroud)

  • 但这对订购没有帮助,不是吗? (5认同)