我已经为事件创建了一个自定义帖子类型,它使用自定义字段来检索事件的日期。它工作正常,我可以使用meta_compare
将日期值与当前日期进行比较。
到目前为止还不错。我还可以通过删除meta compare
) 通过apre get posts
滤器
我想做的是创建一个显示过去事件的管理页面。我使用以下代码创建了页面(和菜单项):
add_action(\'admin_menu\', \'add_concerts_page\');
function add_concerts_page() {
add_submenu_page(\'edit.php?post_type=concerts\', \'Concerts Archive\', \'Concerts Archive\', \'manage_options\', \'concerts-archive\', \'my_archive_function\' );
}
function my_archive_function() {}
但我不知道如何编写函数!!我可以编写一个常规循环并过滤结果,就像我在前端所做的那样,但我所需要做的就是显示与普通管理页面相同的信息,但显示自那以后发生的事件。
这就是我如何过滤自定义帖子编辑屏幕以仅显示未来事件的方式:
function concerts_pre_get_posts($query) {
if (is_admin()) {
if (isset($query->query_vars[\'post_type\'])) {
if ($query->query_vars[\'post_type\'] == \'concerts\') {
$query->set(\'meta_key\', \'date_value\');
$query->set(\'orderby\', \'meta_value\');
$query->set(\'order\', \'ASC\');
$query->set(\'meta_compare\', \'>=\');
$query->set(\'meta_value\', time());
}
}
}
}
add_filter(\'pre_get_posts\' , \'concerts_pre_get_posts\');
我真的不需要为过去的事件创建一个单独的归档页面,只需要在这个页面上创建一个链接来将查询从过去切换到未来的事件就可以了,但我不知道该怎么做!
非常感谢所有帮助!