我这里的问题是显示未来计划帖子的所有单个详细页面。它正在返回404页。如何在wordpress中做到这一点?
到目前为止,我使用的是
$args = array(
\'posts_per_page\' => 10,
\'category__in\' => $category->term_id,
\'orderby\' => \'post_date\',
\'meta_key\' => \'starttime\',
\'order\' => \'ASC\',
\'post_type\' => \'post\',
\'post_status\' => array(\'publish\',\'future\'),
);
$loop1 = new WP_Query( $args );
从这段代码中,我得到了发布和预定的帖子。这篇已发表文章的永久链接运行良好。但它不适用于预定的帖子,并重定向到404页面错误。
最合适的回答,由SO网友:TBI Infotech 整理而成
经过一些研究,这对我很有用:
add_filter(\'the_posts\', \'show_future_posts\');
function show_future_posts($posts)
{
global $wp_query, $wpdb;
if(is_single() && $wp_query->post_count == 0)
{
$posts = $wpdb->get_results($wp_query->request);
}
return $posts;
}
希望它能对其他有同样问题的人起作用。
SO网友:Pieter Goosen
一个更简洁的解决方案是通过pre_get_posts
. 默认情况下,主查询仅向注销用户显示已发布的帖子,并向登录用户显示已发布和私人的帖子。
我们可以使用将将来的帖子添加到主查询中pre_get_posts
add_action( \'pre_get_posts\', function ( $q )
{
if ( !is_admin()
&& $q->is_main_query()
&& $q->is_single()
) {
$q->set( \'post_status\', [\'publish\', \'future\'] );
}
});