页面之间的帖子数量不同。选项

Different amount of posts between pages. Options

我有一个博客,我需要第一个 post 成为特色 post,因此我需要给 post 一个特殊的样式。 没问题,我用下面的代码实现了它。
但是:
问题是,在第一个 post 下方,您会发现其余的位于两行,每行 4 post。 所以基本上我必须通过管理界面告诉 wordpress 每页 9 post:特色 post + 两个 4 posts 行 = 9。 一切都很好,直到你转到第二页,那里没有特色 post,你得到 3 行,2x4 和 1 笨拙的第 3 1 post 行(当然,我要求 9 p/p).
我读过很多 post 关于这个的答案对我来说不够清楚。 问题:是否可以用 wp_query 获得第一个 post,然后用 1 post 的偏移量获得其余的正常循环? 如果没有,还有其他简单的方法吗?
检查一下 here

<?php get_header(); ?>
  <div class="container blog">
   <div class="main-column clearfix">
    <?php if (paginate_links()) : ?>
        <div class="paginate">
        <?php echo paginate_links();?>
        </div>
    <?php endif;?>
    <?php
        $primera = true;
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
        if (have_posts()) :
            while(have_posts()) : the_post(); 
            if($primera == true && $paged == 1) { // IF first post AND first page
                get_template_part('portada');
            }
            else { 
                get_template_part('blog');
            }
            $primera = false;
            endwhile;
        else : echo 'No content';
        endif;
    ?>

</div>
<div class="paginate">
            <?php echo paginate_links();?>
</div> 
<?php get_footer(); ?>

我建议您限制从代码中查询的帖子数量,而不是从管理面板中查询。所以当你检查它的第一页时,你查询 9 posts ,但如果它的其他页面你只查询 8 posts 。一些示例代码是(尚未测试)

<?php
        $primera = true;
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
        if($paged == 1){
           query_posts( 'posts_per_page=9' );
        }else{
           query_posts( 'posts_per_page=8' );
        }
        if (have_posts()) :
            while(have_posts()) : the_post(); 
            if($primera == true && $paged == 1) { // IF first post AND first page
                get_template_part('portada');
            }
            else { 
                get_template_part('blog');
            }
            $primera = false;
            endwhile;
        else : echo 'No content';
        endif;
    ?>

您可以在 https://codex.wordpress.org/The_Loop

的循环之前查找更多查询帖子示例

这是我必须做的才能使用 query_posts 的 paginate_links() 函数:

if($paged == 1){
            global $wp_query;
            query_posts(
                array_merge(
                    array(
                    'posts_per_page' => 9
                    ),
                    $wp_query->query
                )
            );
        } else {
       global $wp_query;
            query_posts(
                array_merge(
                    array(
                    'posts_per_page' => 8
                    ),
                    $wp_query->query
                )
            );
        }