我在Wordpress中使用以下代码来查询事件(自定义帖子类型)并按时间顺序按日期排序..
query_posts( array( 'post_type' => 'events', 'showposts' => 10, 'orderby' => 'meta_value_num','meta_key' => '_ecmb_datetime' ) );
元键_ecmb_datetime
所在的位置,这是事件的时间戳。
我不想展示已经发生的事件,所以我的问题是我如何只显示当前时间之后发生的事件,以及如何按时间顺序排序?
非常感谢任何帮助
答案 0 :(得分:1)
我不是WP专家,但在查看Codex中的一些资源时,您似乎有一些选择。 This page似乎建议不要直接改变query_posts,但如果你知道你的意思,那就这样吧。 This page和this 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' );
您的日期格式需求可能会有所不同,但这可能是一种方法。食典委似乎确实有很多好消息。