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

使用get_posts展示文章滑块,如何为各滑块添加对应背景类?

修复Swiper滑块背景色类重复问题

你的代码核心问题是背景色类的判断逻辑写在了循环外部,仅执行一次,而且此时$counter还未初始化(循环内才赋值$counter = 0),导致所有滑块复用同一个初始计算的类。

修复后的完整代码

<?php
$last_posts = get_posts(array(
    'numberposts' => 5,
    'orderby'     => 'date',
    'post_type'   => 'post',
));

global $post;
?>

<div class="swiper">
    <div class="swiper-wrapper">
        <?php $counter = 0;
        foreach ($last_posts as $post) :
            setup_postdata($post); 
            // 将背景色判断移到循环内部,每次遍历重新计算
            $bgcolor = '';
            if ($counter == 0) {
                $bgcolor = 'yellow-slide';
            } else if ($counter == 1) {
                $bgcolor = 'green-slide';
            } else if ($counter == 2) {
                $bgcolor = 'blue-slide';
            } else if ($counter == 3) {
                $bgcolor = 'yellow-slide';
            } else {
                $bgcolor = 'green-slide';
            }
            ?>
        <div class="swiper-slide <?php echo $bgcolor ?>"></div>
        <?php $counter++ ?>
        <?php endforeach;
        wp_reset_postdata(); ?>
    </div>
</div>

可选优化方案(数组映射更简洁)

如果后续需要调整颜色顺序,用数组映射的方式维护性更强:

<?php
$last_posts = get_posts(array(
    'numberposts' => 5,
    'orderby'     => 'date',
    'post_type'   => 'post',
));

global $post;
// 直接定义索引对应的颜色类
$slideColors = [
    0 => 'yellow-slide',
    1 => 'green-slide',
    2 => 'blue-slide',
    3 => 'yellow-slide',
    4 => 'green-slide'
];
?>

<div class="swiper">
    <div class="swiper-wrapper">
        <?php $counter = 0;
        foreach ($last_posts as $post) :
            setup_postdata($post); 
            $bgcolor = $slideColors[$counter];
            ?>
        <div class="swiper-slide <?php echo $bgcolor ?>"></div>
        <?php $counter++ ?>
        <?php endforeach;
        wp_reset_postdata(); ?>
    </div>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:35:26