即将到来的事件:如何按自定义日期字段对数据库进行排序,但忽略过去的日期?

时间:2013-03-18 作者:timshutes

我正在使用一个事件插件,努力使我的数据库查询变得完美。查询是在单一事件上进行的。php模板。我需要查询执行的操作:

查询即将发生的事件的“事件”自定义帖子类型_event_start_date meta\\u键显示最早日期(最近的事件)不显示过去的事件如果是“当前事件”,则显示下一个最近的事件这是我当前的$参数。

<?php $args = array(
    \'post__not_in\' => array($donotrepeat),
    "post_type" => \'event\',
    \'meta_key\' => \'_event_start_date\', // name of custom field
    \'orderby\' => \'meta_value_num\',
    "order" => \'ASC\',
    "posts_per_page" => 1
   );
?>
定义$donotrepeat 早些时候

$donotrepeat = get_the_ID();
到目前为止,查询成功

查询自定义帖子类型忽略“当前”事件,按最早日期排序

我曾尝试使用meta\\u query对过去的日期问题进行排序,但似乎无法使其正常工作。我认为这可能是一条路,但我对其他想法持开放态度。我相信这没那么难。。。有人能帮忙吗?

1 个回复
最合适的回答,由SO网友:vancoder 整理而成

你很接近,但我不会被“scope”元键分心。以下内容未经测试。

<?php
$args = array(
    \'post__not_in\' => array($donotrepeat),
    "post_type" => \'event\',
    \'meta_key\' => \'_event_start_date\', // name of custom field
    \'orderby\' => \'meta_value\',
    "order" => \'ASC\',
    "posts_per_page" => 1,
    \'meta_query\' => array(
        array(
            \'key\' => \'_event_start_date\',
            \'value\' => date(\'Y-m-d\'),
            \'compare\' => \'>=\',
            \'type\' => \'DATE\'
        )
    ),
);
?>
meta\\u键仅用于排序-meta\\u查询控制实际选择。

请注意,我保留了your posts\\u per\\u页面的原样,即使这样会将选择限制为一条记录。

结束

相关推荐

WP_QUERY:按PHP变量排序

我的问题是:对于我的文章,我使用自定义的帖子类型“展览”,并发布所有其他新闻。我在一个查询中显示它们[\'post\\u type\'=数组(\'experiments\',\'posts\')]。这个orderby parameter 对于帖子应该是发布日期,对于展览应该是自定义元值(项目结束日期)。这样,帖子将按以下顺序显示:展览1(发布日期:2013年1月2日,结束日期:2013年4月4日)第1篇(发布日期:2013年3月13日)展览2(发布日期:2012年4月1日,结束日期:2013年3月1日)第