从循环中删除5个最新帖子

时间:2012-12-07 作者:user21035

最近我为我的WordPress博客做了一个主题。现在我想从主页上筛选(删除)我的5篇最新帖子(index.php) 并在滑块中显示它们。现在,我的5篇最新帖子同时显示在第一页和滑块中:(

更新:

感谢您的回复。我无法解决我的问题。这是我的索引。php来源:

<?php get_header() ?>

<div id="main-wrapper">
    <div class="middle-content">
        <div id="sidebar-right">
            <?php if (function_exists(\'dynamic_sidebar\') && dynamic_sidebar(\'sidebar-right\')) : else : ?>
            <?php endif; ?>
        </div>
        <section class="clearfix" id="content">
            <section id="main-content">
                <?php echo get_touchcarousel(2); ?>
                <div class="mainnews"><h2>Latest News</h2></div>
                <div class="main-menu-content">
                    <?php if(have_posts()) : ?>
                        <?php while (have_posts()) : the_post(); ?>
                            <article id="etc" class="post<?php the_category_unlinked(\' \'); ?>">
                                <div class="post-content">
                                    <div class="post-title">
                                        <a href="<?php the_permalink(); ?>"><h1><?php the_title(); ?></h1></a>
                                    </div>
                                    <div class="clear"></div>
                                    <?php the_excerpt(); ?>
                                    <?php the_post_thumbnail(array(260,140), array ()); ?>
                                </div>
                                <div class="clear"></div>
                            </article>

                        <?php endwhile; ?>
                    <?php endif; ?>
                </div>
                <?php if(function_exists(\'wp_simple_pagination\')) {
                    wp_simple_pagination();
                } ?>
            </section> 
            <div id="sidebar-left">
                <?php if (function_exists(\'dynamic_sidebar\') && dynamic_sidebar(\'sidebar-left\')) : else : ?>
                <?php endif; ?>
            </div>
        </section>
    </div>
    <div class="clear"></div>
    <?php get_footer(); ?>
</div>
</section>
</div>
<div class="clear"></div>
<?php get_footer(); ?>
你能帮帮我吗?

3 个回复
SO网友:getglad

我不知道WP是否有用于其查询的内置功能,但您可以这样做:

$count = 0;
if(have_posts()) : while (have_posts()) : the_post();
if ($count < 4 ) { $count++; }
else { ... your blogroll code ... } 
endwhile; endif;

SO网友:cjbj

正如@getglady所说,你可以建立一个计数器来跳过第一个返回的帖子,但最好是loop through a separate query 像这样:

// show ten posts, begin with the fifth
$the_query = new WP_Query( array( \'posts_per_page\' => 10, \'offset\' => 5 ) );

if ( $the_query->have_posts() ) {
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        echo \'<article>\' ... your stuff ... \'</article>\';
        }
    /* Restore original Post Data */
    wp_reset_postdata();
    }
else {
    // no posts found
    }

SO网友:swtshweta

请检查是否在结束循环时添加了wp\\u reset\\u query()。此外,您还可以检查是否已将offset属性正确添加到query\\u帖子中。

结束

相关推荐

Added if statement to loop

我想给我的循环添加一个功能。与自定义post类型一起使用的php。然而,我不想让它显示在所有帖子上,只想显示那些自定义帖子类型的帖子(比如它被称为“review”)。有没有办法说如果post type=review,那么显示这个新部分,否则隐藏?我试过使用<?php if( get_post_type() == \'reviews\' ) 但我不知道如何将else语句表述为什么都不做,然后正常继续。非常感谢。