如何在当前时间戳之后查询_posts并按时间顺序排序?

时间:2013-10-19 21:10:41

标签: php wordpress sorting custom-post-type

我在Wordpress中使用以下代码来查询事件(自定义帖子类型)并按时间顺序按日期排序..

query_posts( array( 'post_type' => 'events', 'showposts' => 10, 'orderby' => 'meta_value_num','meta_key' => '_ecmb_datetime' ) );

元键_ecmb_datetime所在的位置,这是事件的时间戳。

我不想展示已经发生的事件,所以我的问题是我如何只显示当前时间之后发生的事件,以及如何按时间顺序排序?

非常感谢任何帮助

1 个答案:

答案 0 :(得分:1)

我不是WP专家,但在查看Codex中的一些资源时,您似乎有一些选择。 This page似乎建议不要直接改变query_posts,但如果你知道你的意思,那就这样吧。 This pagethis one一起提出了通过主函数的包装器修改查询以按任意字段排序的方法。

我可能会尝试类似的事情:

function get_pending_events( $query ) {
    $query->set( 'orderby', 'meta_value_num' );
    $query->set( 'order', 'DESC' );
    $query->set( 'meta_value', time() );
    $query->set( 'meta_compare', '>=' );
}

add_action( 'pre_get_posts', 'get_pending_events' );

您的日期格式需求可能会有所不同,但这可能是一种方法。食典委似乎确实有很多好消息。