You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress文章循环修改:前3篇输出后单独行展示剩余文章

实现方案

核心通过循环计数器标记文章序号,将前3篇和剩余文章分别包裹在独立的Bootstrap row 行容器中,同时修正原查询仅拉取3篇文章的限制:

  • 初始化$current_post_index计数器,每循环一篇文章计数+1
  • 将原查询参数posts_per_page=3修改为posts_per_page=-1拉取全部文章,如需限制总文章数量可将-1替换为对应数值
  • 第一篇文章输出前打印第一行的起始标签,第3篇输出完成后自动闭合第一行
  • 第4篇文章输出前先打印新行的起始标签,所有文章循环结束后统一闭合最后一个行容器
  • 剩余文章的栅格类可按需调整,示例中使用col-md-12占满整行,也可替换为col-md-6/col-md-4等类实现多列布局

修改后的完整代码如下:

<?php
// posts_per_page=-1 表示拉取全部文章,需限制总数可替换为对应数字
$the_query = new WP_Query( 'posts_per_page=-1' );
$current_post_index = 0; // 初始化文章序号计数器
?>

<?php while ($the_query->have_posts()) : $the_query->the_post();
    $current_post_index++;
    // 输出第一行起始标签
    if ($current_post_index === 1) {
        echo '<div class="row">';
    }
    // 第4篇开始时闭合上一行,开启新行
    if ($current_post_index === 4) {
        echo '</div><div class="row mt-4">'; // mt-4为新行添加顶部外边距,可按需删除
    }
?>
    <?php if ($current_post_index <= 3): // 前3篇使用col-md-4三列布局 ?>
    <div class="col-md-4">
        <a href="<?php the_permalink() ?>">
            <?php the_title(); ?>
        </a>
        <?php the_excerpt(__('(more…)')); ?>
    </div>
    <?php else: // 剩余文章可自行修改栅格类 ?>
    <div class="col-md-12 mb-3">
        <a href="<?php the_permalink() ?>">
            <?php the_title(); ?>
        </a>
        <?php the_excerpt(__('(more…)')); ?>
    </div>
    <?php endif; ?>
<?php endwhile;
// 闭合最后一个行容器
echo '</div>';
wp_reset_postdata();
?>

兼容说明:如果总文章数不足3篇,代码会自动适配,不会出现HTML标签未闭合的问题。如果剩余文章需要多列布局,仅需修改else分支的col类名即可,Bootstrap的row容器会自动完成换行。

内容的提问来源于stack exchange,提问作者crad98

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 03:51:27