我会使用“未来”的帖子状态..
WordPress 具有“安排”帖子的能力。因此,您告诉您的客户将帖子“安排”到他想要的某一天,在他去的整个星期中。
然后,您有很多方法可以确保只有一个组可以看到它们,例如管理员 - 通过使用以下条件 :
if (is_admin()) {
}
现在,正如我所说,这里有很多方法可以实现这一点,通过过滤查询、添加新查询、添加多个循环等,等等。
例如 :
if (is_admin()) { // if we are admin - or any other conditional wanted
// start a new query
$my_query = new WP_Query('post_status=future');
while ($my_query->have_posts()) : $my_query->the_post();
//do the thing
wp_reset_postdata();
// start the normal query ...
}
另一种方法是在循环内正常使用
get_post_status()
$status = get_post_status();
if ($status == 'future') && (is_admin()) {
//display post as you would
}
// continue normal query / post display here ..
因此,这样,该页面将对“普通”用户正常运行 - 直到更新日期,但会显示管理员的预定帖子(或已登录,或特定用户,或您想要的任何条件)
更新一:根据评论的概念证明:
警告:丑陋的非高效代码。概念演示..
while ( have_posts() ) : the_post();
// start here
$future_q = new WP_Query( 'post_status=future' );
while ( $future_q->have_posts() ) : $future_q->the_post();
if (current_user_can( 'administrator' ) == TRUE ){
the_title();}
endwhile;
wp_reset_postdata();
echo 'Normal start here :';
the_title();
上面的代码适用于我的设置。确实,它是丑陋的代码,效率不高,不是最好的方法,但它是一个概念证明,可以使用future
帖子状态来完全按照 OP 的要求进行操作。您可以通过修改和过滤查询变量、更改循环或检查循环内部的循环状态,甚至使用 get_posts() 将这个概念付诸实践——所有这些都可以满足您想要的任何条件。