循环帖子仅不包括第一个帖子

时间:2018-01-22 作者:jons

在我正在开发的一个网站的主博客页面上,我的设计师将第一篇帖子的风格独特,并且与其他帖子不同。由于这是一个分页的归档页面,我需要循环浏览分页页面上的所有帖子,但不包括第一篇帖子,因为我将在它自己的循环中得到它。

我在查询中尝试了Offset选项,但了解到这会导致分页失败。

谢谢你的帮助。

2 个回复
SO网友:Milo

您不需要单独的查询,可以在同一个查询上运行多个循环-

// output first post
if( have_posts() ){
    the_post();
    the_title();
}

// output the rest of the posts...
if( have_posts() ){
    while( have_posts() ){
        the_post();
        the_title();
    }
}
您还可以使用rewind_posts() 将当前帖子重置回0,以及手动设置$wp_query->current_post 到您想要的任何索引,并在那里开始循环(注意:post计数器从0开始,而不是从1开始)。

如果您只想在第一页而不是后续页面上设置第一篇文章的样式,可以检查它是否not 已分页为! is_paged()

if( ! is_paged() ){
    echo \'this will only output on the first page\';
    if( have_posts() ){
        the_post();
        the_title();
    }
}

SO网友:Jignesh Patel

遵循此步骤:

步骤1:对于不同的部分,可以显示第一篇帖子。当输入此代码时。

<?php
// For your frist post
global $post,$firstPosts;
$args = array(
            \'posts_per_page\' => 1,
            \'orderby\' => \'post_date\',
            \'order\' => \'DESC\',
            \'post_type\' => \'post\',
            \'post_status\' => \'publish\',
        );
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
    while ( $the_query->have_posts() ) : $the_query->the_post();
        $firstPosts[] = $post->ID;
        echo get_the_title();  
    endwhile;
endif;
wp_reset_postdata();
?>
第二步:在你的博客页面列表上。输入此代码Index.php 文件仅适用于回路柱,不包括第一柱

<?php
// blog page
// Put this code after get_header(); line

global $wp_query,$firstPosts;
$args = array_merge( $wp_query->query,  array( \'post__not_in\' => $firstPosts ) );
query_posts( $args ); 

?>

结束

相关推荐

数字范围之间的WordPress Meta_Query(无效)

我的自定义帖子类型有一个名为(sizes\\u Available)的元字段,它如下所示:尺寸\\u适用于职位id 1:15-25-35-45尺寸\\u适用于职位id 2:55-65-75-85我有一个搜索输入,用户可以在下拉列表中搜索其特定大小,如下所示:I need Size between: 11-19 ; 31-39 ; 51-59 ; 81-89 ; 因此,如果用户从下拉列表(11-19)中搜索大小。。它将列出po