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

使用Toolset创建的自定义Term字段无法通过get_terms()获取

解决Toolset自定义Term字段在get_terms()中缺失的问题

我明白你遇到的困扰了——默认的get_terms()函数只会返回WordPress原生的分类属性(比如slug、description这些),Toolset创建的自定义Term字段不会自动包含在返回的结果里。别担心,有几种简单可靠的方法可以获取到这个字段的值:

方法1:使用Toolset官方提供的函数

Toolset自带了专门用于处理Term元数据的函数,推荐优先使用这种方式,因为它会自动适配Toolset字段的格式(比如图片字段会返回正确的附件ID,无需手动处理前缀):

$terms = get_terms( array(
    'taxonomy' => 'client',
    'hide_empty' => false,
) );

foreach ( $terms as $term ) {
    // 获取client-logo-image字段的原始值(比如图片的附件ID)
    $client_logo_id = types_get_termmeta( $term->term_id, 'client-logo-image', true );
    
    // 如果是图片字段,用WordPress原生函数生成图片HTML
    if ( $client_logo_id ) {
        $client_logo_html = wp_get_attachment_image( $client_logo_id, 'full' );
        echo $client_logo_html;
    }
    
    // 也可以直接让Toolset帮你渲染字段(自动处理显示逻辑)
    // echo types_render_termmeta( 'client-logo-image', array( 'term_id' => $term->term_id ) );
}

方法2:使用WordPress原生get_term_meta()函数

Toolset现在会把自定义Term字段存储在标准的wp_termmeta表中,字段名会自动添加wpcf-前缀。你也可以直接用原生函数获取:

$terms = get_terms( array(
    'taxonomy' => 'client',
    'hide_empty' => false,
) );

foreach ( $terms as $term ) {
    // 注意字段名要加上Toolset的默认前缀wpcf-
    $client_logo_id = get_term_meta( $term->term_id, 'wpcf-client-logo-image', true );
    
    if ( $client_logo_id ) {
        $client_logo_html = wp_get_attachment_image( $client_logo_id, 'full' );
        echo $client_logo_html;
    }
}

额外优化:预加载元数据提升性能

如果你的分类数量较多,循环中逐个获取元数据会产生多次数据库查询,影响性能。可以在get_terms()之后预加载所有分类的元数据,后续调用get_term_meta()就不会重复查询了:

$terms = get_terms( array(
    'taxonomy' => 'client',
    'hide_empty' => false,
) );

// 提取所有分类ID,预加载对应的元数据
$term_ids = wp_list_pluck( $terms, 'term_id' );
update_term_meta_cache( $term_ids );

// 后续循环获取字段会更高效
foreach ( $terms as $term ) {
    $client_logo_id = get_term_meta( $term->term_id, 'wpcf-client-logo-image', true );
    // ... 你的后续处理逻辑
}

这样就能顺利获取到你创建的client-logo-image字段值啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:02:02