当前时间之后事件的WordPress WP_Query查询事件发布类型

问题描述 投票:1回答:1

我不知道为什么我不能让这个工作。所以我想得到一个未来的事件列表。事件日期存储为时间戳。我想先通过下一个活动订购它们,然后再推出下一个活动等。

这是我正在使用的,但它不是按时间戳排序,它甚至显示已经过去的事件。

$args = array (
'post_type' => 'race', 
'posts_per_page' => -1,
'meta_key' => 'race_date',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_compare' => '>=',
'meta_value' => time()
);

例如,有一个时间戳为1540322400的事件,测试时间为1552474027,所以我不知道为什么要返回该事件。

然后,例如,按时间戳1551813600的事件顺序显示时间戳为1556447400的事件。

在这种情况下,我使用高级自定义字段日期和时间选择器,并使用自定义值U存储它来存储时间戳。

我不知道为什么我不能让这个工作。

wordpress advanced-custom-fields
1个回答
0
投票

我认为您需要明确指定元查询的日期对象比较。否则,您的比较可能是比较字符串而不是日期。

您可以在元查询比较中设置DATETIME的“类型”。

试试这个查询:

$time = date('U'); // same as ACF format
$args = array (
    'post_type' => 'race', 
    'posts_per_page' => -1,
    'orderby' => 'meta_value',
    'order' => 'ASC',
    'meta_query' => array(
            array(
                'key'     => 'race_date',
                'value'   => $time,
                'compare' => '>=',
                'type'    => 'DATETIME' // Try with DATE if necessary
            )
        ),
);

参考

© www.soinside.com 2019 - 2024. All rights reserved.