在循环中显示计划的帖子(但不链接到它们)?

时间:2020-02-03 作者:Elizabeth

有没有一种方法可以在常规循环中显示预定的帖子,但不链接它们?我想表明他们很快就会来。

这段代码使它们可见,但你可以点击帖子,这是我不想要的。

add_action( \'pre_get_posts\', function ( $wp_query ) {
global $wp_post_statuses;

if (
    ! empty( $wp_post_statuses[\'future\'] ) &&
    ! is_admin() &&
    $wp_query->is_main_query()
   ) {
    $wp_post_statuses[\'future\']->public = true;
   }
});

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

有没有一种方法可以在常规循环中显示预定的帖子,但不链接它们?我想表明他们很快就会来。

是的,如果你不想链接到他们,那么就不要为他们创建链接。

这段代码使它们可见,但你可以点击帖子,这是我不想要的。

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
}

相关推荐

WordPress Recent Posts - Loop

我非常感谢您的帮助,我在列表项中写了一个循环,但我希望在缩略图上设置宽度和高度,并显示一些专家级的“文本”,但限制其长度。。。<ul> <!-- Define our WP Query Parameters --> <?php $the_query = new WP_Query( \'posts_per_page=3\' ); ?> <!-- Start our WP Query -->