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

如何按program_categories分类展示University关联的Programs自定义文章?

解决方案

核心思路是先拿到当前University关联的所有Programs,再逐个提取它们的program_categories分类,建立「分类-下属Programs」的映射关系,最后只渲染有对应关联Programs的分类组。

以下是实现代码(假设ACF关联字段名为related_programs,分类法slug为program_categories):

<?php
// 获取当前University关联的Programs文章
$related_programs = get_field('related_programs');

if ($related_programs) {
    // 初始化分类-Programs映射数组
    $category_programs = [];

    foreach ($related_programs as $program) {
        // 获取当前Program所属的program_categories分类
        $categories = get_the_terms($program->ID, 'program_categories');
        
        if ($categories && !is_wp_error($categories)) {
            foreach ($categories as $category) {
                // 将当前Program添加到对应分类的数组中
                $category_programs[$category->term_id]['term'] = $category;
                $category_programs[$category->term_id]['programs'][] = $program;
            }
        }
    }

    // 遍历映射数组,渲染分组内容
    if (!empty($category_programs)) {
        foreach ($category_programs as $group) {
            $category = $group['term'];
            $programs_in_category = $group['programs'];
            ?>
            <details>
                <summary><?php echo esc_html($category->name); ?></summary>
                <ul>
                    <?php foreach ($programs_in_category as $program) { ?>
                        <li><a href="<?php echo get_permalink($program->ID); ?>"><?php echo esc_html($program->post_title); ?></a></li>
                    <?php } ?>
                </ul>
            </details>
            <?php
        }
    } else {
        echo '<p>暂无关联专业</p>';
    }
} else {
    echo '<p>暂无关联专业</p>';
}
?>

代码说明:

  • 先通过get_field获取ACF关联的Programs集合,避免直接查询所有分类导致的冗余内容。
  • 遍历每个Program时,用get_the_terms提取它的分类,同时将Program归类到对应分类的数组中,自动过滤掉无关联Programs的分类。
  • 最后用details/summary标签实现折叠展开的交互效果,前端可自行添加CSS样式优化显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:54:21