如何显示未来(计划的)帖子的详细信息页面

时间:2014-05-30 作者:TBI Infotech

我这里的问题是显示未来计划帖子的所有单个详细页面。它正在返回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页面错误。

3 个回复
最合适的回答,由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\'] );
    }
});

SO网友:Zohair Baloch

请尝试以下代码以显示计划帖子的列表:

<?php $my_query = new WP_Query(\'post_status=future&order=DESC&showposts=5\');
if ($my_query->have_posts()) {
    while ($my_query->have_posts()) : $my_query->the_post(); $do_not_duplicate = $post->ID; ?>

        <li><?php the_title(); ?></li>

    <?php endwhile; } ?>

结束

相关推荐