从查询中排除特定帖子

时间:2021-11-01 作者:mikolaj

在分类帖子存档中,我想显示最后10篇帖子和1篇特色帖子(特色帖子仅在第一页)。我可以选择首先显示的特色帖子(用户可以手动选择,其自定义字段称为“category\\u featured\\u post”)。现在,如果特色帖子与列表中显示的帖子相同,那么它将加倍(在特色位置和列表上)。我可以在列表中隐藏这篇文章(如果它显示在显示特色文章的第一页上),但现在列表中将有9篇文章,而不是10篇。在这种情况下,我如何显示10篇帖子?

自定义字段category_featured_post 在类别上,它是一个返回单个帖子ID的帖子对象。

以下是我现在掌握的代码:

<!-- DISPLAY FEATURED POST (ONLY ON FIRST PAGE) IN BIG TILE -->
<?php
    if ( !is_paged() ) :
        $post = get_post($featured_post);
        ?>
        <div class="tile">
            <h3><?php the_title(); ?></h3>
            <p><?php the_excerpt(); ?></p>
            <a href="<?php echo the_permalink(); ?>">Read post</a>
        </div>
        <?php
    endif;     
?>
<!-- DISPLAY POSTS IN LIST -->
<?php 
    if (have_posts()){
        while(have_posts()){
            the_post();

            // DON\'T DISPLAY POST IF IT\'S FEATURED
            if(get_the_ID() != $featured_post ){
                get_template_part(\'template-parts/post/content\',\'archive\');
            }
        }
    } 
?>

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

感谢liquidRock和StudioAl提供的解决方案!

Exclude post from query:

\'post__not_in\' => array( $featured_post_id )

相关推荐

static array on functions.php

在函数中。php中,我想访问数据库一次,以获取一个ACF对象,然后在本地“保存”它,以防止对数据库的进一步请求。我想首先在“init”钩子中调用以下函数。然后,假设,当我在以后的挂钩上调用它时,由于使用了“static”关键字,$current\\u store var已经设置好了,函数将在第一个“if”返回已经保存的静态var时停止。它不起作用-当访问稍后挂钩上的函数时,“isset($current\\u store)”返回false。我做错了什么?function get_current_store