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

按类别分组的HTML手风琴:合并同州重复条目问题求助

解决ACF自定义字段手风琴同州条目合并问题

核心思路是先将获取到的文章按「州」字段分组,再基于分组后的数组渲染手风琴,这样同州的内容会被合并到同一个面板中。修改后的完整代码如下:

<?php 
$loan_list = get_posts([
    'post_type' => [ 'nas-loanmaturity' ],
    'posts_per_page' => -1,
    'post_status' => 'publish',
    'has_password' => false,
    'order' => 'ASC',
    'meta_key' => 'loan_type',
    'meta_value' => $type,
]);

// 初始化分组数组,按州存储对应文章
$state_groups = [];
foreach ($loan_list as $loan) {
    $post_id = $loan->ID;
    $state = get_field('lm_state', $post_id);
    
    // 跳过州名为空的情况(可选)
    if (empty($state)) continue;
    
    // 将当前文章添加到对应州的分组中
    $state_groups[$state][] = [
        'title' => $loan->post_title,
        'address' => get_field('lm_address', $post_id),
        'link' => get_field('lm_link', $post_id),
        // 其他需要的字段都可以在这里添加
    ];
}
?>

<ul uk-accordion="active: 0">
    <?php foreach ($state_groups as $state_name => $posts) : ?>
    <li>
        <a class="uk-accordion-title"><?php echo esc_html($state_name); ?></a>
        <div class="uk-accordion-content">
            <!-- 循环输出该州下的所有文章内容 -->
            <?php foreach ($posts as $post) : ?>
            <div class="loan-item">
                <h4><?php echo esc_html($post['title']); ?></h4>
                <?php if ($post['address']) : ?>
                <p><?php echo esc_html($post['address']); ?></p>
                <?php endif; ?>
                <?php if ($post['link']) : ?>
                <a href="<?php echo esc_url($post['link']); ?>" target="_blank">查看详情</a>
                <?php endif; ?>
            </div>
            <?php endforeach; ?>
        </div>
    </li>
    <?php endforeach; ?>
</ul>

代码说明

  1. 分组逻辑:通过第一个foreach遍历原始文章列表,将每篇文章按lm_state字段归类到$state_groups数组中,数组的键是州名,值是该州下的所有文章数据。
  2. 渲染逻辑:第二个foreach遍历分组后的数组,每个州生成一个手风琴面板;面板内容区域再遍历该州下的所有文章,输出具体内容。
  3. 安全处理:使用esc_html()和esc_url()对输出内容进行转义,避免XSS安全问题。

原来使用in_array无效的原因是没有先构建分组结构,直接判断州名无法关联到对应的文章集合,通过先分组再渲染的方式就能解决重复州条目问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 14:05:34