有没有一种方法可以在常规循环中显示预定的帖子,但不链接它们?我想表明他们很快就会来。
是的,如果你不想链接到他们,那么就不要为他们创建链接。
这段代码使它们可见,但你可以点击帖子,这是我不想要的。
pre_get_posts
更改查询获取的帖子,这与这些帖子的显示方式无关,它们的显示方式完全是主题模板的工作。
奇怪的是,你的pre_get_posts
筛选器不修改查询对象。这样做的结果是,所有后续查询都将有将来的帖子,即使它们不是主查询,只要它们发生在它之后。
您最好只是修改查询,而不是更改WP globals。
add_action( \'pre_get_posts\', function ( $wp_query ) {
if ( is_admin() ) {
return;
}
if ( ! $wp_query->is_main_query()) {
return;
}
$wp_query->set( \'post_status\', [ \'publish\', \'future\' ] );
});
那么,如何只链接到已发布的内容?简单,只需检查状态并仅在发布时查看链接
if ( get_post_status() == \'publish\' ) {
// show the post in the loop normally
} else {
// it\'s a scheduled post, show it differently
}