这似乎是一个相当常见的问题,但我在这里发布这篇文章,因为我还没有在WP答案上找到我的问题的解决方案-非常感谢您的帮助!
好的,我有一个自定义的“事件”post类型,其中我使用自定义字段捕获事件的日期,并将其存储为unix时间戳。使用以下代码仅显示将来的事件,筛选前端的帖子不是问题:
$events = new WP_Query( \'post_type=events&posts_per_page=-1&meta_key=date_value&orderby=meta_value&meta_compare=>=&meta_value=\'.time().\'&order=ASC\' );
我已经尝试在管理中使用pre_get_posts
过滤器:function events_pre_get_posts($query) {
if (is_admin()) {
if (isset($query->query_vars[\'post_type\'])) {
if ($query->query_vars[\'post_type\'] == \'events\') {
$query->set(\'meta_key\', \'date_value\');
$query->set(\'orderby\', \'meta_value\');
$query->set(\'meta_compare\', \'>=\');
$query->set(\'meta_value\', time());
$query->set(\'order\', \'ASC\');
}
}
}
}
add_filter(\'pre_get_posts\' , \'events_pre_get_posts\');
但是在管理中,这个代码只会让我所有的帖子消失!我也在试图找到一种在后端显示过去事件的方法,我真的被困在那里了!我不确定这样做的最佳方式——也许可以在“事件”帖子页面上切换以查看过去/未来的事件。
帮助