允许任何人在Wordpress中查看某些帖子类型(事件)的未来帖子

时间:2012-09-24 20:49:33

标签: php wordpress permissions

我在Wordpress上有一个系统,其中事件是预定的帖子,并且在循环中字很好。

然而我只是注意到,当点击一个事件并转到它的页面时,它会给出一个404.我可以在我登录时预览它,但是,我需要它可以被任何人看到,即使它当前调度。

有没有办法更改权限,以便任何人都可以查看特定的预定帖子类型?

谢谢!

3 个答案:

答案 0 :(得分:3)

编辑:

尝试将此功能添加到functions.php文件中:

/* 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;
}
add_filter('the_posts', 'show_future_posts');

答案 1 :(得分:1)

未来的帖子有点像Catch-22:您可以在任何好的老式Wordpress循环中查询它们,但直接导航到它们是不可能的 .....至少,在标准的Wordpress范围内:

<?php
$q = new WP_Query(array('post_status'=>'future'));
if($q->have_posts()) : while($q->have_posts()) : $q->the_post;
    echo '<a href="'.get_permalink().'">'.get_the_title().'</a>'; //404 when clicked
endwhile;endif;
?>

原因不是因为权限。这是因为它是如何在Wordpress Core中构建的。未来的帖子无法在特定日期之前查看。试图使未来的帖子可供查看是滥用“未来”状态并且失去其整体目的,即安排帖子或页面在达到指定日期时自动切换到“已发布”状态。 / p>

但是,如果您仍然希望将Future Posts视为普通帖子,This discussion可能会对各种方法和插件有所了解,以便按照您想要的方式实现所有内容。

祝你好运。

答案 2 :(得分:0)

我尝试了几个针对此问题的插件和建议,但没有一个能够向未登录的用户显示单个自定义帖子类型模板页面。最终我找到了答案:

https://wordpress.stackexchange.com/questions/44202/how-to-set-a-custom-post-type-to-have-viewable-future-posts/70155#70155