如何从主循环中排除类别中的最后一篇帖子(例如,特色)?

时间:2014-09-15 作者:Cristian N

我在主页上使用了两个循环,一个显示特色类别中的最后一篇文章,另一个显示所有文章的通用循环。问题是我在同一页的两个循环中都得到了特色类别中的最后一篇文章。它基本上复制了该页面上的帖子。我似乎只能找到如何排除整个类别,我知道如何做到这一点。这不是我需要的。我只想从功能类别中排除最新的帖子。

我想我可以从已经显示的特色类别中提取帖子的ID,将其存储在变量中,然后将该变量从主循环中排除。然而,我是wordpress和php的初学者,不太清楚如何做到这一点。

有什么想法吗?

编辑:这是我要更改的代码:

            <?php
            $myPosts = new WP_Query( \'category_name=Featured&posts_per_page=1\' );while (     $myPosts->have_posts() )
            : $myPosts->the_post();
            ?>
                <?php 
                if (has_post_thumbnail( $post->ID ) ):
                    $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), \'single-post-thumbnail\' );
                endif;
                $image_url = $image[0];
                ?>
                <div class="index-featured-post" 
                style="background:linear-gradient(to bottom, rgba(26,26,26,0.8) 0%, rgba(110,110,110,0.5) 50%, rgba(26,26,26,0.8) 100%), url(<?php echo $image_url; ?>)">
                    <div class="row">
                        <div class="large-8 large-centered columns">
                            <span class="cat-index"><?php the_category(); ?></span>
                            <?php the_title( sprintf( \'<h1 class="entry-title"><a href="%s" rel="bookmark">\', esc_url( get_permalink() ) ), \'</a></h1>\' ); ?>
                            <span class="post-tag-line"><?php the_field(\'post_tag_line\'); ?></span>
                            <p class="ert-featured"><?php acn_estimated_reading_time() ?></p>
                        </div>
                    </div>
                </div>
            <?php endwhile; ?>
            <?php wp_reset_postdata(); ?> 


            <?php if ( have_posts() ) : ?>

                <?php while ( have_posts() ) : the_post(); ?>

                    <?php
                        get_template_part( \'content\', get_post_format() );
                    ?>

                <?php endwhile; ?>
           <?php endif; ?>

1 个回复
SO网友:Chris Morris

如果将最后一个post ID存储在第一个循环中的变量中,则可以在第二个循环中使用post\\u not\\u in来排除ID。

示例改编自Wordpres Class Reference/WP Query

$query = new WP_Query(
    array(
        \'post_type\' => \'post\',
        \'post__not_in\' => array( $excluded_post_id )
    )
);
您可以通过在post\\u not\\u in中填充帖子的ID来排除任意数量的帖子。只需确保您在其循环中获得了要排除的帖子的ID,否则您可能会试图排除当前页面。

结束

相关推荐

The Loop in Static Page

我对环路有一些问题。我以“Twenty14”主题为例。我正在使用基本循环创建2个php文件。一个是家。其中一个是名为示例页的模板页。php。两者都包含此代码;if( have_posts() ) : while( have_posts() ) : the_post(); the_content; endwhile; endif; 没什么特别的,唯一的区别是我在示例页面上有模板声明。php/** * Template Nam