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

Bootstrap手风琴嵌入PHP动态自定义字段时全部展开异常问题

问题原因

所有手风琴的折叠容器都固定添加了show类,Bootstrap中show类是控制手风琴项默认展开的核心样式类,你仅调整了按钮的aria-expanded属性,没有同步控制show类的输出逻辑,因此页面加载时所有项都被标记为展开状态。第一次点击手风琴项时Bootstrap会先同步属性和类的匹配状态,第二次点击才会触发正常的折叠逻辑,才会出现你描述的异常表现。

修复方案

修改.accordion-collapse元素的class属性,动态判断循环索引,仅首个元素添加show类,其余元素不添加。

修复后代码如下:

<div class="accordion faqs" id="accordionExample-b">
<?php if( have_rows('preguntas') ): ?>
    <?php 
        $var = 0;
        while( have_rows('preguntas') ): the_row(); ?>
            <div class="accordion-item">
                <h2 class="" id="<?php echo('heading-'.$var)?>">
                    <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="<?php echo('#collapse-'.$var)?>" 
                        aria-expanded="<?php if($var==0):echo ('true'); else: echo ('false'); endif;?>" aria-controls="<?php echo('collapse-'.$var)?>">
                        <h3><?php the_sub_field('pregunta'); ?></h3>
                    </button>
                </h2>
                <!-- 仅首个折叠项加show类 -->
                <div id="<?php echo('collapse-'.$var)?>" class="accordion-collapse collapse <?php if($var==0) echo 'show'; ?>" aria-labelledby="<?php echo('heading-'.$var)?>" data-bs-parent="#accordionExample-b">
                    <div class="">
                        <?php the_sub_field('respuesta'); ?>
                    </div>
                </div>
            </div>
    <?php $var++; endwhile; ?>
<?php endif; ?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:06:02