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

WordPress自定义类型单页展示brique分类法:名称正常但图片无法显示咨询

问题修复方案

定位到的代码错误

  • 变量引用错误:循环内直接使用了从未赋值的$term_id变量,分类ID实际存储在$term对象的term_id属性中,原代码拼接出的自定义字段名完全不符合配置规则,根本匹配不到已设置的配图字段。
  • ACF调用上下文缺失:通过get_field()读取分类法下的自定义字段时,必须传入第二个参数标注当前读取的是哪个分类的字段,原代码未传该参数,函数默认会读取当前页面文章的自定义字段,自然拿不到分类对应的配图。
  • 逻辑冗余失效:原代码的两层判断$term->count > 0和$term->count !== 0条件完全重叠,且你已经设置了hide_empty => false要展示全部分类,这套判断没有实际作用,还会导致空分类项没有跳转链接、输出结构不符合预期。
  • 核心API兼容问题:WordPress 4.5版本之后,get_terms()不再支持“分类法单独作为第一参数、配置数组作为第二参数”的旧写法,需要统一将分类法合并到配置数组中传入,避免新版核心更新后报错。

可直接使用的修复后代码

<?php 
    $tax = 'brique';
    
    // 兼容新版WordPress的get_terms调用方式
    $terms = get_terms( array(
        'taxonomy' => $tax,
        'hide_empty' => false,
    ) );
    
    // 增加错误拦截,避免分类查询异常时直接暴露PHP报错
    if ( is_wp_error( $terms ) ) {
        return;
    }
    
    foreach( $terms as $term ) {
        $term_link = get_term_link( $term );
        // 修正字段读取逻辑:用分类真实ID拼接字段名,同时传入分类对象作为读取上下文
        $image = get_field( 'visuel_' . $term->term_id, $term );
        
        echo '<a href="' . esc_url( $term_link ) . '">';
        // 增加空值判断,避免没有配图的分类输出空img标签报错
        if ( !empty( $image ) ) {
            echo '<img src="' . esc_url( $image['url'] ) . '" alt="' . esc_attr( $image['alt'] ) .'">';       
        }
        echo esc_html( $term->name );
        echo '</a>';
    }
?>

调整说明

  • 如果你的自定义字段没有给每个分类做带ID后缀的独立字段名(所有分类统一使用同一个visuel字段名),只需要把get_field()的第一参数改成'visuel',保留第二参数$term即可正常读取。
  • 所有动态输出内容都补充了对应的安全转义函数,避免出现XSS安全风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 20:57:01